【问题标题】:How can I trigger events to fire on connected clients using node.js, sockets.io and redis?如何使用 node.js、sockets.io 和 redis 在连接的客户端上触发事件?
【发布时间】:2012-01-06 17:30:24
【问题描述】:

好的,所以我之前问过question 询问我的选择,我研究了 sockets.io 和 redis,真的很喜欢我所看到的。

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

我不是在寻找一些代码来循环并检查此更改,我想知道如何在 redis 数据库中进行更改时向特定客户端触发事件。任何可以帮助我解决这个问题的伪代码都会很棒。我也非常感谢任何显示如何将事件挂钩到 redis 实例中的更改的 node.js 代码。

干杯,乔什

【问题讨论】:

  • 你不小心弄到了伪代码。
  • -对不起,我按了回车键,并在我完成问题之前发布了 >
  • @jezternz 在 redis 上监听,当 redis 说数据发生变化时,将数据广播到 socket.io 上的所有客户端(这些客户端会监听该数据事件)
  • 我希望这个answer能解决你的问题
  • 是的,您可以使用。但结果并不比我的例子好

标签: javascript node.js nosql websocket redis


【解决方案1】:

我无法为您编写任何 node.js 代码,但听起来您想要的正是 Redis 的 pub/sub 功能的用途:

http://redis.io/topics/pubsub

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

【讨论】:

  • 我对使用这种方法唯一真正关心的是社交能力吗?使用这种方法同时连接数千个客户端会不会效率低下?如果每个客户有多个订阅呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
相关资源
最近更新 更多