为什么广播在文档中被描述为标志,而实际上它是一个对象?

Why is the broadcast described as flag in the docs when it is actually an object?

广播消息部分http://socket.io/docs/#broadcasting-messages有如下描述

To broadcast, simply add a broadcast flag to emit and send method calls. Broadcasting means sending a message to everyone else except for the socket that starts it. Server

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

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

广播是一个对象。为什么文档描述将其称为 flag

在 socket.io 实现的内部,broadcast 是一个与 emit 一起发送的标志,它告诉底层基础设施要做什么。请参阅 the source for that flag here and you can see here in the source,它在套接字上测试该标志以确定是否应广播给定的 emit

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

broadcast 也是适配器对象上的一个方法,由 socket.io 内部使用。因此,他们将这个术语用于几乎所有事物(标志、对象、方法)。在您引用的情况下,该文档有一些不同的用途混淆。

socket.io 文档就是这样(没有达到应有的水平)。我发现经常引用 Github 上的源代码,甚至跟踪调试器中的执行对于理解事物的工作原理至关重要。