我正在尝试熟悉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。 有人请向我解释他们之间的关键区别。
答案 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()
之间存在差异。它必须是由于其他原因。您必须向我们展示一组可重现的代码,这些代码可以帮助您调试它们。