当广播实际上是一个对象时,为什么广播被描述为文档中的标志?

时间:2015-02-14 19:01:25

标签: javascript socket.io socket.io-1.0

广播消息部分http://socket.io/docs/#broadcasting-messages中,有以下说明

  

要进行广播,只需在emit和send方法中添加广播标志即可   调用。广播意味着向其他所有人发送消息   用于启动它的套接字。服务器

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.broadcast.emit('user connected');
});

广播是一个对象。为什么doc描述将其称为标志

1 个答案:

答案 0 :(得分:2)

在socket.io实现的内部,broadcast是一个带有emit的标志,它告诉底层基础结构该做什么。请参阅the source for that flag here,您可以看到here in the source在套接字上测试该标志的位置,以确定是否应广播给定的emit

broadcast中的socket.broadcast.emit()确实是一个对象。

broadcast也是适配器对象上的一个方法,由socket.io在内部使用。因此,他们已将该术语用于几乎所有事物(旗帜,物体,方法)。在您引用的案例中,该文档有一些不同的用法。

socket.io doc就是这样(不是那么好)。我发现Github上的源代码的常量引用,甚至在调试器中跟踪执行,对于理解事物的工作方式至关重要。