【发布时间】:2019-02-14 04:33:29
【问题描述】:
在我的应用程序中,我需要向特定用户发送实时通知。
我的WebSocketConfig 班级如下,
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
stompEndpointRegistry.addEndpoint("/websocket-example")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
}
}
大部分时间信息将由服务器端发送。所以我没有设置应用目的地。
在客户端,我正在订阅目标“/topic/user”,
function connect() {
var socket = new SockJS('/websocket-example');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/user', function (greeting) {
// showGreeting(JSON.parse(greeting.body).content);
console.log("Received message through WS");
});
});
}
在我的一个RestController 中,我有一个方法可以将消息广播到所有连接的客户端。
@GetMapping("/test")
public void test()
{
template.convertAndSend("/topic/user", "Hurray");
}
直到这部分一切正常。我收到消息并正在登录控制台。
现在如果我只想将通知发送给特定用户,我必须使用template.convertAndSendToUser(String user, String destination, String message)。但我不明白应该将什么传递给user 参数。我将在何时何地收到user?
我遇到了几个与此相关的问题,但我没有清楚地理解这些概念。
【问题讨论】:
-
你在使用spring security吗?
标签: java spring spring-boot websocket spring-websocket