【发布时间】:2021-04-14 07:01:16
【问题描述】:
我用教程创建了一个基本的网络套接字。
这是一个配置:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat");
registry.addEndpoint("/chat").withSockJS();
}
}
这里是消息处理控制器:
@MessageMapping("/chat")
@SendTo("/topic/messages")
public OutputMessage send(Message message) throws Exception {
return new OutputMessage("Hello World!");
}
一切正常,但根据我的调查,默认情况下 WebSockets 似乎具有应用程序范围(通过连接到通道,我可以看到来自所有用户的所有调用)。
我想要做的是只能看到来自当前用户会话或当前视图的呼叫。 有关如何应用这些配置的任何想法?
【问题讨论】:
标签: java spring-boot websocket spring-websocket spring-messaging