取消订阅/断开实时更新JS库

时间:2016-03-17 21:13:39

标签: getstream-io

我们正在处理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()

1 个答案:

答案 0 :(得分:2)

您必须捕获从user1.subscribe返回的绑定,在此对象上,您可以调用unsubscribe取消实时订阅。请参阅Stream-js库的Faye部分。示例代码:

var subscription = user1.subscribe(callback).then(function() {}, function() {});
subscription.cancel();