socketio 中 `socket.broadcast.to(param)` 的用途是啥

Posted

技术标签:

【中文标题】socketio 中 `socket.broadcast.to(param)` 的用途是啥【英文标题】:What is the purpose of `socket.broadcast.to(param)` in socketiosocketio 中 `socket.broadcast.to(param)` 的用途是什么 【发布时间】:2015-09-06 05:47:15 【问题描述】:

在学习 Node.js 时,我遇到了一个编写聊天系统的示例。

代码中的某处有以下行:

socket.broadcast
    .to(message.room)
    .emit('message', theMessage);

我不明白to 函数在做什么。另外,我在客户端代码中没有找到任何线索。如果代码没有to(message.room) 部分会怎样?

【问题讨论】:

Whats the difference between io.sockets.emit and broadcast? 的可能重复项 @laggingreflex 我的具体问题是关于to 方法的使用。我现在已经知道sockets.emtibroadcast 之间的区别了。 .to 用于发射到房间:socket.io/docs/rooms-and-namespaces/#rooms 【参考方案1】:

socket.broadcast.to 向给定房间中的所有套接字广播,但调用它的套接字除外。

更多详情:http://socket.io/docs/server-api/#socket#to(room:string):socket

【讨论】:

我只是不明白房间的意思。当您在 C++ 中使用套接字编程时,没有空间之类的概念。套接字只能与消息通信。 通过使用房间,您还可以定义套接字可以加入和离开的任意通道。这提供了一个特定的事件,该事件仅被发送到该房间的已连接套接字。我没有在 C++ 中使用过套接字,所以对此我无能为力。

以上是关于socketio 中 `socket.broadcast.to(param)` 的用途是啥的主要内容,如果未能解决你的问题,请参考以下文章

Flask框架:运用SocketIO实现WebSSH

在 SocketIO 命名空间中使用烧瓶会话数据时出错

在线程中运行 flask-socketio

ios中SocketIO的实现

托管在 Heroku 上的 Flask SocketIO 应用程序不使用 @socketio.on 事件?

如何在nodejs,socketio中检查在线用户?