socket.to(id)和socket.broadcast.to(id)之间有什么区别?

时间:2015-07-05 03:55:58

标签: socket.io

我正在使用socket.io编写应用程序。

我对关于socket.broadcast的官方文件感到困惑 从我的测试来看,下面的代码具有相同的效果:

socket.to(id).emit('some event')

socket.broadcast.to(id).emit('some event')

广播有什么作用?

1 个答案:

答案 0 :(得分:1)

document.createElement()在套接字中设置一个标志,

broadcast

告诉经理omit current socket from broadcasting

Socket.prototype.__defineGetter__('broadcast', function () {
  this.flags.broadcast = true;
  return this;
});

因此Socket.prototype.packet = function (packet) { if (this.flags.broadcast) { this.log.debug('broadcasting packet'); this.namespace.in(this.flags.room).except(this.id).packet(packet); } else { ... 会产生以下影响:连接到socket.broadcast.to(room)的客户端将不会收到该消息。然而,socket所有会议室的客户都会收到包含与socket.to(room)相关联的消息的消息。

我刚刚对套接字v0.9进行了验证,但我怀疑这些机制对于v1是不同的。+