私は pusher.com を初めて使用します。プレゼンス チャネル チャットを設定しようとしています。
これが私のコードです:
var PresenceChannel = pusher.subscribe('presence-test_channel');
PresenceChannel.bind('pusher:subscription_succeeded', function(members){
$("#chatMembers").empty();
members.each(function(member) {
$("#chatMembers").prepend("<li id='"+member.info.employee_id+"'>"+member.info.customer_id+"</li>");
});
});
PresenceChannel.bind('pusher:member_added',function(member){
$("#chatMembers").prepend("<li id='"+member.info.employee_id+"'>"+member.info.customer_id+"</li>");
});
PresenceChannel.bind('pusher:member_removed',function(member){
$("li#"+member.info.employee_id).remove();
});
期待どおりに動作します。
しかし、私には問題があります:
開いているブラウザ ウィンドウの 1 つを更新すると、次のイベントが発生します。
PresenceChannel.bind('pusher:member_added',function(member){...
そしてその直後、
PresenceChannel.bind('pusher:member_removed',function(member){...
くびになる。そのため、1 つのウィンドウを更新した後、ユーザーはリストから削除され、1 秒後に再びユーザーがリストに追加されます....
1) ブラウザ ウィンドウを 1 つリロードする
2) 別のウィンドウで「pusher:member_removed」がトリガーされます: ユーザーがリストから削除されました
3) 別のウィンドウで「pusher:member_added」がトリガーされます: ユーザーがリストに追加されました
何をすべきか ?