Backbone と JavaScript SDK を使用したアプリ内チャットに PubNub を使用しています。別のビューに移動してチャット ウィンドウに戻ると、メッセージを公開するとメッセージが重複して受信されます。もう一度ブラウジングすると、メッセージを 3 通受け取ります。
チャットページに戻るたびに、何度も購読していると思いますが、購読解除を機能させることができず、購読する他の場所に関するドキュメントが見つかりません.
すでに購読しているかどうかを確認するために使用できるチェックはありますか?
私のコードは次のとおりです。
// 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
});