我得到一個相當簡單的聊天應用程序與存在組推送訂閱/取消訂閱問題。在給定的時間應該有兩個訂閱頻道。在骨幹路由之間導航時,用戶在頻道之間切換,因此沒有硬重新載入頁面。推送者訂閱和取消訂閱過程
Pusher似乎在大多數情況下都能正常工作,但我頻道訂閱的間歇性錯誤。
我寫了兩個連接通道方法,如果已經加入了前一個路由,就退訂。我擔心Pusher內部會出現一些異常情況,這些情況正在破壞。
爲單通道我推相關的代碼:
window.pusher = new Pusher('<%= Pusher.key %>', {
authEndpoint: 'api/pusher/auth'
});
路線:
this.groupFeed = this._pusherSubscribeGroup(group_id);
this.groupFeed.bind('new_conversation', function(data) {
var newConv = new App.Models.Conversation(data);
this.group.conversations().add(newConv);
}.bind(this));
退訂幫手:
_pusherSubscribeGroup: function (group_id) {
if (this._groupChannelName) {
window.pusher.unsubscribe(this._groupChannelName);
}
this._groupChannelName = 'presence-group-' + group_id;
return window.pusher.subscribe(this._groupChannelName);
}
控制檯錯誤:
Pusher : Error : {"type":"WebSocketError","error":{"type":"PusherError","data":{"code":null,"message":"Existing subscription to channel presence-group-1"}}}