Pubnub接收重复的消息

Cit*_*gic 6 javascript pubnub

我正在使用PubNub与Backbone和javascript sdk进行应用内聊天.如果我导航到另一个视图并返回聊天窗口,当我发布消息时,我会一式两份地收到它.如果我再次浏览,我会一式三份收到消息,等等.

我想我每次回到聊天页面时都会一次又一次地订阅 - 但是我无法取消订阅工作,我找不到任何有关订阅的文档.

我可以使用支票查看我是否已订阅?

我的代码是:

// INIT
var channel = 'my_channel';
var pubnub  = PUBNUB.init({
subscribe_key : 'demo',
publish_key   : 'demo'
});

function chat(message) {
if (message.uid == "xxx") {
    $("#convo").append('<div class="isaid">' + message.message + '</div><div class="clear clearfix"></div>');
} else {
    $("#convo").append('<div class="hesaid">' + message.message + '</div><div class="clear clearfix"></div>');
}
}

pubnub.history({
channel  : channel, // USER_ID Channel
limit    : 30,      // Load Last 50 Messages
callback : function(msgs) { 
    pubnub.each( msgs[0], chat );
}
});

pubnub.subscribe({
channel: 'my_channel',
callback: function(data) {
    chat(data);
}
});

pubnub.publish({
     channel: 'my_channel',        
     message: data
 });
Run Code Online (Sandbox Code Playgroud)

Cra*_*ver 3

pubnub 变量超出了取消订阅的范围。开发人员必须在函数外部声明 pubnub 才能取消订阅。