2

我使用 PubNub、Phonegap、Backbone.js 和 Require.js 来构建 twiiter 风格的聊天室。目前我正在使用 chrome 在桌面上进行测试。

我有一个 Chat.js 视图,在 initialize() 函数中,我订阅了频道:

                that.pubnub.subscribe({
                  channel: chatChannel,
                  message: that.handleSingleMessage,
                });

这很好用,我可以使用 Chrome 检查器看到 ajax 请求已发送。在应用程序的顶部有一个“返回”按钮。在这里,我调用 unsubscribe 来取消订阅用户:

        that.pubnub.unsubscribe({
            channel: chatChannel
          });

但是,我仍然使用 Chrome 检查器看到对 PubNub 的 ajax 请求仍在发送,即使用户应该取消订阅并且位于应用程序的不同部分。2 ajax 请求被重复发送。他们看着像是:

http://ps13.pubnub.com/time/0?uuid=tomsmith&auth=&pnsdk=PubNub%2DTS%2DWeb%2F3%2Y5%2E1

http://ps11.pubnub.com/time/0?uuid=4ea9bd1c%2D7652%2D410c%2Da2ba%2D17c5d263085d&auth=&pnsdk=PubNub%2DTS%2DWeb%2F3%2Y5%2E1

知道发生了什么吗?

4

2 回答 2

0

取消订阅后,请确保您没有重新订阅同一个频道。如果 PubNub 失去连接,它会自动尝试重新连接到频道。您可以在此处查看我如何切换和取消订阅频道:http: //plnkr.co/edit/7JyS4H

于 2013-10-23T17:20:39.640 回答
0
http://ps13.pubnub.com/time/0?uuid=tomsmith&auth=&pnsdk=PubNub%2DTS%2DWeb%2F3%2Y5%2E1 

只是“时间”电话。它们用于监控客户端的在线/离线状态,并不意味着您仍然订阅。把它们想象成“PubNub Pings”

如果您仍然看到一个带有“订阅”的 URL,那么这意味着您仍然被订阅,例如:

http://ps2.pubnub.com/subscribe/demo/demoapp1%2Cdemoapp1-pnpres/0/13825545216910725?uuid=2f62d1c1-69c8-423c-9492-74e29f46a877&pnsdk=PubNub-JS-Web%2F3.5.47

但从您的示例看来,在您取消替换后,它只是在这里执行心跳逻辑。

杰里米

于 2013-10-23T18:56:24.187 回答