socket.io room之间和

时间:2018-04-25 06:01:55

标签: node.js websocket socket.io chatroom

我正在尝试熟悉socket.io和node。 https://socket.io/docs/rooms-and-namespaces/

这是我的参考。

var socketIO = require('socket.io')(http);
 socketIO.on('connection', function(socket) { 
 socket.join(data.room);})
 socketIO.in(users[key].room).emit('newmsg', data); 
        socketIO.to(users[key].room).emit('newmsg', data); 

这里带有socketIO.in的代码给出输出,而socketIO.to没有 但是根据他们的文档和应该返回相同的o / p。 有人请向我解释他们之间的关键区别。

1 个答案:

答案 0 :(得分:1)

正好在socket.io doc

namespace.in(room)

Synonym of namespace.to(room).

因此,.to().in()是相同的。

而且,如果你查看the code,你会看到:

Namespace.prototype.to =
Namespace.prototype.in = function(name){
  if (!~this.rooms.indexOf(name)) this.rooms.push(name);
  return this;
};

因此,.to().in()都运行完全相同的代码,因此您认为您看到的任何差异都不是因为调用.to().in()之间存在差异。它必须是由于其他原因。您必须向我们展示一组可重现的代码,这些代码可以帮助您调试它们。