2013-10-23 189 views
2

Im使用PubNub,Phonegap,Backbone.js和Require.js構建Twiiter風格的聊天室。目前我正在使用chrome在桌面上進行測試。無法取消訂閱PubNub

我有一個Chat.js視圖,並在initialize()函數,我訂閱的頻道有:

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

這工作得很好,我可以用Chrome檢查發現AJAX請求被紅牌罰下。在應用程序的頂部有一個「後退」按鈕。在這裏我打電話退訂退訂用戶:

 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 

任何想法是怎麼回事?

回答

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

只是'時間'調用。它們用於監視客戶端的在線/離線狀態,並不意味着您仍然訂閱。他們認爲,正如「PubNub的Ping」

如果你還看到了它「訂閱」的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 

但它看起來像你的例子,在你沒有進行任何操作之後,它只是在這裏執行心跳邏輯。

geremy

0

確保您取消訂閱後不重新訂閱同一頻道。 PubNub自動嘗試重新連接到通道,如果它失去連接。你可以看到我如何在這裏切換和取消訂閱頻道:http://plnkr.co/edit/7JyS4H

+0

謝謝,看起來非常有用的代碼。你是否用「恢復:假」來做到這一點? – user1716672