问题描述
我正在使用 Spring WebSocket STOMP。我需要从 SUBSCRIBE
框架中保存所有订阅目的地并在 UNSUBSCRIBE
框架中将其删除,但是如何从 UNSUBSCRIBE 框架中获取目的地?
解决方法
UNSUBSCRIBE
框架不包含目的地的名称。它只包含一个 id
标头,该标头必须与最初发送相应 SUBSCRIBE
帧的客户端提供的 id
标头匹配。 STOMP 代理实现本身会跟踪连接/ID/目的地关系。如果您想在客户端发送 UNSUBSCRIBE
帧时执行自己的逻辑,则需要自己跟踪。
最后,我修改了 SUBSCRIBE
帧中的默认 id 标头作为目标,如下所示
subscription=stompClient.subscribe('/destination',function(data){
if (data.body) {
console.log(data);
$("#response").text(data.body);
} else {
alert("got empty message");
}
},{ id: '/destination' });
然后我从 UNSUBSCRIBE
帧获取 id