【发布时间】:2016-07-22 07:33:58
【问题描述】:
我正在使用 grails/groovy,所以请原谅奇怪的语法,我也是使用 websockets 的新手,所以如果我以错误的方式处理这个问题,请告诉我:
使用 spring websockets 我可以通过
向某些订阅用户发送消息SimpMessagingTemplate brokerMessagingTemplate
users.each {
brokerMessagingTemplate.convertAndSendToUser(it.id,"/topic/path",data)
}
但是,我只想向订阅用户发送消息,这些用户已经向服务器传递了一个超出其用户 ID 的特定值/ID。一个连接在网页加载时初始化,所以我想也许我可以添加一个 STOMP 标头值,将这个信息传递给服务器,并且服务器只向匹配的连接发送消息。
var socket = new SockJS("/url/stomp");
var client = Stomp.over(socket);
var headers = {'additionalId': additionalId};
client.connect({}, function() {
client.subscribe("/user/topic/path", function (data) {
}, headers);
首先,我不知道添加标头值是否是正确的方法,其次我不确定如何将 SimpMessagingTemplate 发送给那些在标头中专门提供了附加 Id 的人。
【问题讨论】:
标签: spring-mvc grails websocket stomp spring-websocket