【发布时间】:2023-02-02 22:14:37
【问题描述】:
我正在 Spring Boot 中制作一个 WebSocket Chat 应用程序,我想显示所有已连接用户的列表,是否可以编写某种函数来检索所有已连接用户?
这是我的 WebSocketConfig:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat-example").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
这是控制器:
@Controller
public class ChatController {
private final MessageRepository messageRepository;
public ChatController(MessageRepository messageRepository) {
this.messageRepository = messageRepository;
}
@MessageMapping("/chat.send")
@SendTo("/topic/public")
public ChatMessage sendMessage(@Payload ChatMessage chatMessage) {
messageRepository.save(chatMessage);
return chatMessage;
}
@MessageMapping("chat.newUser")
@SendTo("/topic/public")
public ChatMessage newUser(@Payload ChatMessage chatMessage, SimpMessageHeaderAccessor headerAccessor) {
headerAccessor.getSessionAttributes().put("username", chatMessage.getSender());
messageRepository.save(chatMessage);
return chatMessage;
}
}
【问题讨论】:
-
简短的回答是:是的
-
那很好,但是如何呢?
标签: java spring-boot websocket spring-websocket