我们正在处理SPA(单页应用程序),因此当用户登录UI时刷新而不刷新页面。我们还通过库启动流套接字连接,如下所示。现在,当用户注销时,我们想要销毁它。我们尝试了 user1.unsubscribe()和 client.disconnect(),但似乎没有工作,尽管在源代码中定义了方法。
在页面永不刷新的环境中处理此问题的正确方法是什么?
client = Stream.connect('xxx', null, 'xxx')
user1 = client.feed('notification', @user.get('id'), @user.get('streamToken'))
callback = (data) =>
return
failCallback = (data) ->
return
user1.subscribe(callback).then (->
), failCallback
@user.on 'logged:out', ->
user1.unsubscribe()
client.disconnect()
答案 0 :(得分:2)
您必须捕获从user1.subscribe
返回的绑定,在此对象上,您可以调用unsubscribe
取消实时订阅。请参阅Stream-js库的Faye部分。示例代码:
var subscription = user1.subscribe(callback).then(function() {}, function() {});
subscription.cancel();