でチャットアプリケーションをnowjs
作成しています。ユーザーはチャットルームを作成して、その部屋にユーザーを招待できます。これを行うために使用されるコードは次のとおりです。
everyone.now.addPeopleToChat = function(clientIds,roomName) {
var length = clientIds.length;
var group = nowjs.getGroup(roomName);
for(var i=0;i<length;i++){
group.addUser(clientIds[i]);
}
group.now.roomName = roomName;//User can be in one room only at any given time.Reference to the roomname to be used when user leaves chat
group.now.loadChatWindow();//Load UI
}
これまでのところ良いです。ユーザーはチャットルームに追加することができ、チャットも問題ありません。
ユーザーがチャットルームにいてブラウザウィンドウを閉じたときに、チャットルームの他のユーザーにこの人がチャットから退出したことを知らせてほしい。この特定の状況を処理するために切断イベントを使用することを考えました。これは私が使用したコード。
nowjs.on('disconnect', function () {
console.log("User name:"+this.now.name);//comes fine
console.log("Room name:"+this.now.roomName);//shows undefined.
var group = nowjs.getGroup(this.now.roomName);//Intention is to get the room in which user was chatting.But it is not working because roomName is undefined.
group.now.broadcast(this.now.name+" has left this room");
});
roomName
ハンドラーで未定義として表示されるのはなぜですかdisconnect
。ユーザーがグループの権利に追加されたときにその変数を設定しているので、グループ内の各ユーザーはその変数を正しく設定する必要があります。ここで何かが不足していますか?