我正在使用 ng2-stomp-service 订阅一个套接字:
this.fooSubscription = this.stomp.subscribe('/topic/foo', (res) => {
console.log('do stuff with res');
});
Run Code Online (Sandbox Code Playgroud)
这非常适合接收数据。但是在某些时候(单击按钮时)我想停止接收数据。其他订阅仍在使用该连接,因此我只想取消订阅此特定订阅。单击按钮时发生这种情况:
unsubscribeFoo() {
this.fooSubscription.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
但是,我仍然清楚地从该订阅中获取数据,因为它是从服务器发送的。
当我取消订阅时,我在浏览器控制台中从 stomp 的调试输出中看到了这一点,看起来很有希望:
>>> UNSUBSCRIBE
id:sub-3
Run Code Online (Sandbox Code Playgroud)
但是,很遗憾,我仍然在片刻之后获得数据。
小智 5
我知道这是一个老问题,但对于任何偶然发现的人来说,取消订阅功能引用主题的 id,而不是实际主题。
您可以在订阅功能中设置 id:
client.subscribe(topic, messageHandler, { id: “myTopicId”});
Run Code Online (Sandbox Code Playgroud)
现在你可以像这样调用取消订阅:
client.unsubscribe(“myTopicId”);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3787 次 |
| 最近记录: |