3

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

1 回答 1

3

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

var subscription = user1.subscribe(callback).then(function() {}, function() {});
subscription.cancel();
于 2016-03-18T07:01:11.660 回答