SimpUserRegistry.getUsers() — пустые веб-сокетыJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 SimpUserRegistry.getUsers() — пустые веб-сокеты

Сообщение Гость »


Я пытаюсь реализовать уведомления на веб-сайте с помощью веб-сокетов. Я настроил конфигурацию сервера и отправку сообщений. Мой клиент получает мои сообщения и отображает страницу, но когда я пытаюсь получить список пользователей, подключенных к сокету, я получаю пустой список.

Моя конфигурация:

@Configuration @RequiredArgsConstructor @EnableWebSocket @EnableWebSocketMessageBroker публичный класс WebSocketConfig реализует WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker (конфигурация MessageBrokerRegistry) { config.enableSimpleBroker("/topic", "/user"); config.setApplicationDestinationPrefixes("/app"); } @Override общественный недействительный RegisterStompEndpoints (реестр StompEndpointRegistry) { реестр.addEndpoint("/ws") .setAllowedOriginPatterns("*"); } } Мой контроллер Rest для отправки сообщения:

@RestController @CrossOrigin("*") @RequiredArgsConstructor @RequestMapping("/уведомления") общественный класс NotificationController { частный окончательный NotificationService NotificationService; @PostMapping("/все") public void sendNotificationToAll(@RequestBody String message) { NotificationService.sendToAll (сообщение); } @PostMapping("/пользователь") public void sendNotificationToUser(@RequestBody String message) { NotificationService.sendToUsers (сообщение); } @GetMapping("/getUser") общественная недействительность getUsers () { NotificationService.getUsers(); } } Сервис для отправки сообщений в тему:

@Service @RequiredArgsConstructor общественный класс NotificationService { частный окончательный SimpMessagingTemplate simpMessagingTemplate; частный окончательный SimpUserRegistry simpUserRegistry; public void sendToAll (Строковое сообщение) { System.out.println(сообщение); simpMessagingTemplate.convertAndSend("/topic/public", message); } public void sendToUsers (String message) { Listusers = List.of("полное имя какого-то пользователя"); simpMessagingTemplate.convertAndSendToUser(users.get(0), "queue/private", message); } общественный недействительный getUsers () { List userNames = simpUserRegistry.getUsers().stream().map(SimpUser::getName).toList(); simpUserRegistry.getUsers().forEach(System.out::println); } } Пытался отправить уникальное имя клиента при подключении, не помогло. Я использую клиент SockJs для js.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»