来自[**http://socket.io/docs/rooms-and-namespaces/#sending-messages-from-the-outside-world](http://socket.io/docs/rooms-and-namespaces/#sending-messages-from-the-outside-world]) 的socket.io docs ,我阅读了以下内容,但我似乎无法将它与我头脑中的任何用例连接起来:**
在某些情况下,从外部世界发送消息时,您可能希望从Socket.IO进程的外部上下文向Socket.IO名称空间/房间中的套接字发出事件。 有几种方法可以解决这个问题,比如实现您自己的通道将消息发送到流程中。 为了方便这个用例,我们创建了两个模块: socket.io-redis Socket.IO发射器 通过实现Redis适配器: var io = require('socket.io')(3000);var redis = require('socket.io-redis');io.adapter(redis({ host:'localhost',端口: 6379 });然后您可以将消息从任何其他进程发送到任意信道var =require(‘Socket.IO-发射器’)();setInterval(函数(){ io.emit('time',新日期);},5000);
发布于 2016-04-27 18:51:28
如果您有一个服务器集群,并且希望与连接到不同实例的客户端对话,您将需要一个公共存储--这是您使用Redis的时候。
您还提到io发射器,这是其他进程向客户端发送消息的一种方式。例如,如果工作人员需要向客户端发送消息,则可以使用io发射器。Redis是在不同进程/服务器之间共享消息的常用粘合剂。
发布于 2016-04-27 18:52:53
只有当您希望将解决方案扩展到多个解决方案或节点进程时,才需要该模块。通过redis适配器,多台服务器可以向其他客户端广播。
基本上,当您有两个服务器时,每个服务器都运行自己的服务器。服务器A有三个客户端。服务器B有两个不同的客户端。这两个服务器不共享任何客户端信息,因此无法向所有用户广播消息。适配器使您能够将这些不同的服务器连接到一个服务器上(使用redis),这样您就可以向所有用户广播。
同时也很好地展示了socket.io和redis http://www.slideshare.net/YorkTsai/jsdc2013-28389880。
https://stackoverflow.com/questions/36897960
复制相似问题