Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用node.js、sockets.io和redis在连接的客户端上触发事件?_Javascript_Node.js_Nosql_Websocket_Redis - Fatal编程技术网

Javascript 如何使用node.js、sockets.io和redis在连接的客户端上触发事件?

Javascript 如何使用node.js、sockets.io和redis在连接的客户端上触发事件?,javascript,node.js,nosql,websocket,redis,Javascript,Node.js,Nosql,Websocket,Redis,好的,我之前问过一个关于我的选项的问题,我已经研究了sockets.io和redis,我非常喜欢我所看到的 无论如何,我希望有多个客户端连接到node.js服务器。然后,当我的redis db发生更改时,例如布尔值从0变为1,我希望所有node.js连接将此更新发送给所有客户端 我不是在寻找一些代码来循环和检查这种更改,我想知道当redis db中发生更改时,如何向特定客户机触发事件。任何psuedo代码来帮助我了解这一点,都会很棒。我也非常欣赏任何node.js代码,它展示了如何将事件与red

好的,我之前问过一个关于我的选项的问题,我已经研究了sockets.io和redis,我非常喜欢我所看到的

无论如何,我希望有多个客户端连接到node.js服务器。然后,当我的redis db发生更改时,例如布尔值从0变为1,我希望所有node.js连接将此更新发送给所有客户端

我不是在寻找一些代码来循环和检查这种更改,我想知道当redis db中发生更改时,如何向特定客户机触发事件。任何psuedo代码来帮助我了解这一点,都会很棒。我也非常欣赏任何node.js代码,它展示了如何将事件与redis实例中的更改挂钩


干杯,Josh

我不能为您编写任何node.js代码,但听起来您想要的正是Redis的发布/订阅功能的用途:


每个node.js客户端都会订阅一个通道,在那里他们会阻止/等待消息到达。无需循环/轮询。

您无意中输入了伪代码。-很抱歉,我在完成问题之前按了enter键并发布了><我意识到我真的不知道伪代码如何工作。因为我的理解仅限于客户端连接、消息和断开连接时触发的事件,而不是服务器单独执行任何操作时触发的事件。@jezternz在redis上侦听,当redis说数据已更改时,在socket.io上向所有客户端广播该数据(这些客户端经常侦听该数据事件)我希望这能解决您的问题。是的,您可以使用。但结果并不比我的例子好。我使用这种方法唯一真正关心的是社交能力?使用这种方法同时连接数千个客户端是否效率低下?如果每个客户端都有多个订阅,情况如何?