在文档的socket.io客户端套接字部分http://socket.io/docs/client-api/#io#socket指的是套接字文档,这意味着服务器套接字对象和客户端套接字对象是相同的。
io.on('connection', function(socket){
socket.on('say to someone', function(id, msg){
socket.broadcast.to(id).emit('my message', msg);
});
});
是的,不能从客户端进行广播。这是因为它们可能都是套接字,但它们不被认为是相同的。看看这两个:
IO-客户机和Socket.io
问题内容: 我正在构建一个实时Web应用程序。 我希望能够从python应用程序的服务器端实现发送广播消息。 这是设置: 客户端上的 socketio.js TornadIO2 服务器作为Socket.IO服务器 *服务器端的 *python ( Django 框架) 我可以成功地将socket.io消息从客户端发送到服务器。服务器处理这些并可以发送响应。在下文中,我将描述我是如何做到的。 当前设
问题内容: 因此,我读了一些有关扩展Socket.IO的文章。由于种种原因,我不想使用内置的Socket.IO缩放机制(大多数情况似乎效率低下,因为从我的角度来看,它向Redis发布了很多东西)。 所以我想出了一个简单的想法: 每个Socket.IO服务器都创建Redis发布/订阅/存储客户端,连接到Redis并订阅频道。现在,当我要广播数据时,我只是将其发布到Redis,所有其他Socket.I
问题内容: 我正在尝试创建一个简单的脚本,以便每次文件更新时都将文件中的数据发送到客户端。我已经测试过,发现该文件已被读取,但是客户端什么也没收到。控制台中没有错误。我对socket.io相当陌生。 node.js代码 客户代码 问题答案: 每当事情无法正常进行时,您都需要诉诸“调试模式”。在这种模式下,您需要收集所有可能发生的事件,并从中学到什么。为此,请将以下代码添加到客户端: 这些消息都记录
问题内容: 向所有客户端发送消息效果很好,但是我想向特定的用户名发送消息。我的server.js文件看起来像。它的作用是在运行时,客户端代码将用户添加到对象用户名以及套接字对象中。并立即将单个消息返回给每个连接的客户端。 发出消息的部分 问题答案: 试试这个: socket.id由socket.io保存,并且包含客户端的唯一ID。您可以使用以下命令进行检查:
当我提交表单时,我在浏览器控制台中看到“emit”消息,所以我知道表单提交事件正在触发,但我没有在服务器上收到测试消息。客户端或服务器端似乎什么也没发生,“socket.emit”函数似乎什么也没做。 我做错了什么?
服务器: