使用node.js assocket .io向单个特定客户端发送/发出消息



我目前开始使用node.js,作为第一个小项目,我决定编写一个小聊天应用程序。到目前为止,我使用的是socket.io,并遵循http://socket.io/get-started/chat/上的聊天教程。现在我想扩展这个脚本,但是我卡住了。

我不明白如何(或者如果有)套接字。IO在服务器端管理所有连接的客户端。我可以使用io.emit功能向所有连接的用户发送消息。但是,如果我想向某个特定用户发送消息,该怎么办呢?

当然,我可以通过将消息发送给所有客户端来"伪造"它,然后在客户端检查标识符等,并且仅在有匹配时才处理消息。但这仍然会将消息发送给所有人,并且很容易被具有最少JS知识的用户绕过。

出于安全原因,"过滤"/"定位"需要在服务器端发生。但是我没有看到/理解socket是如何(或者如果有的话)的。IO实际上管理所有客户端连接。是否有一种方法可以获得所有当前连接的客户端的列表?您能在一个循环中对所有连接的客户机进行交互吗?您可以为连接分配自定义标识符/名称吗?作为实际应用程序,您可以向单个连接的用户发出/发送消息吗?

每个套接字连接在第一次建立新连接时都有一个唯一的套接字id。您可以使用该特定id发出数据。

var socketId=socket.id;
socket.broadcast.to(socketId).emit("messageToReceiver",data);

因此,您可以将它发送给特定的人。

要获取所有已连接的客户端,请检查此URL:套接字。IO -我如何获得连接的套接字/客户端列表?

相关内容

  • 没有找到相关文章

最新更新