2014-02-12 2 views
6

Backbone 및 javascript sdk를 사용하여 인앱 채팅을 할 때 PubNub를 사용하고 있습니다. 다른보기로 이동하여 채팅 창으로 돌아 가면 메시지를 게시 할 때 사본을 받게됩니다. 다시 검색하면 다시 3 배로 메시지가 수신됩니다.Pubnub에서 중복 메시지를 수신 중

채팅 페이지로 돌아올 때마다 다시 구독하고 있다고 생각합니다. 그러나 구독 취소 메시지를받지 못하고 ' 그 밖의 구독처에 관한 문서를 찾지 마십시오.

이미 가입했는지 확인할 수있는 수표가 있습니까?

내 코드는 다음과 같습니다

// 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 
}); 
+1

메시지를 하나 보내고 추가해야합니다 여러 번받은 - 내가 응용 프로그램을 다시로드하면 기록이 중복되지 않습니다. – Citylogic

+0

'pubnub.unsubscribe ({channel : 'my_channel'});'작동하지 않습니까? – sb9

+1

'close : function()'에 넣으려고했으나 뷰가 닫히지 않았습니다. 다른 곳에서 탈퇴해야하는지 잘 모르겠습니다. – Citylogic

답변

2

pubnub 변수는 수신 거부의 범위를 벗어났습니다. 개발자는 pubnub을 구독 취소 기능 외로 선언해야했습니다.

관련 문제