Socket.IO在室内断开第一个用户

时间:2014-10-12 23:49:00

标签: javascript node.js sockets socket.io socket.io-1.0

我遇到的问题是让我想要通信的房间的第一个用户总是离开,但这只会在我检查其身份时发生。

  socket.on('player moved', function(msg) {
var curr_room = msg.room_number;
var room_data = io.sockets.adapter.rooms[curr_room];
var temp_room = [];
console.log(room_data);
for (var id in room_data) {
  temp_room.push(io.sockets.adapter.nsp.connected[id]);
}
var player1_id = temp_room[0].id;
var player2_id = temp_room[1].id;
console.log(player1_id);
console.log(player2_id);
console.log(msg.player_id);
if (player1_id && player2_id) {
  if (player1_id === msg.player_id) {
    temp_room[1].emit('update coords', "dude");
  } else if ("ffff" === msg.player_id) {
    console.log('tessting to see wheter i can be in')
    temp_room[0].emit('update coords', "sweet");
  }
}

所以这没有任何错误,当我在console.log房间数据时,我看到两个套接字是我想要的,但是如果我改变了#34; ffff" to player2_id我得到这个奇怪的错误,对于这个函数的第一次迭代,我得到两个套接字,但在那之后第一个玩家断开连接,我离开

var player1_id = temp_room[0].id;
                             ^

TypeError:无法读取属性' id'未定义的

我完全不知道为什么这个检查会让用户断开连接,而且我不知道为什么用户在页面保持打开状态时断开连接。

任何人都有任何见解,我们将不胜感激! 谢谢!

0 个答案:

没有答案