首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能给我举个例子,说明我需要使用socket.io-redis吗?

有人能给我举个例子,说明我需要使用socket.io-redis吗?
EN

Stack Overflow用户
提问于 2016-04-27 18:24:12
回答 2查看 2.4K关注 0票数 1

来自[**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);

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-27 18:51:28

如果您有一个服务器集群,并且希望与连接到不同实例的客户端对话,您将需要一个公共存储--这是您使用Redis的时候。

您还提到io发射器,这是其他进程向客户端发送消息的一种方式。例如,如果工作人员需要向客户端发送消息,则可以使用io发射器。Redis是在不同进程/服务器之间共享消息的常用粘合剂。

票数 4
EN

Stack Overflow用户

发布于 2016-04-27 18:52:53

只有当您希望将解决方案扩展到多个解决方案或节点进程时,才需要该模块。通过redis适配器,多台服务器可以向其他客户端广播。

基本上,当您有两个服务器时,每个服务器都运行自己的服务器。服务器A有三个客户端。服务器B有两个不同的客户端。这两个服务器不共享任何客户端信息,因此无法向所有用户广播消息。适配器使您能够将这些不同的服务器连接到一个服务器上(使用redis),这样您就可以向所有用户广播。

同时也很好地展示了socket.io和redis http://www.slideshare.net/YorkTsai/jsdc2013-28389880

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36897960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档