使用 socket.io node.js 和传入消息的通知系统的架构实现和设计

Posted

技术标签:

【中文标题】使用 socket.io node.js 和传入消息的通知系统的架构实现和设计【英文标题】:Architecture Implementation and Design for a Notification System using socket.io node.js and incoming messages 【发布时间】:2011-11-03 05:11:21 【问题描述】:

免责声明

我之前没有使用过 node.js 我之前没用过socket.io

我正在考虑实现一个 Google Plus、Facebook、*** 风格的通知系统。我不是一个缺乏经验的开发人员,最终我会弄清楚这一点,但我只是在寻找正确方向的推动力。

我希望正在浏览我网站的用户在他们的浏览会话期间收到新消息时收到通知。

目前,我所有的消息都存储在一个表中。

  |  id    | messageSubject   | messageBody     | hasRead   | readDate   | sentDate   | sentToUser  | sentFromUser  |
  |   1    |   HelloWorld     | Nada            |   0       | `null`     | `null      |      1      |      10       |

现在,我所有的消息都是从几十个不同的来源检索到的。

第三方可以通过 API 输入消息 从发送网格中提取消息 可以通过私人消息控制器发送消息。 等等等等

我想要的是有一种方法能够在收到新消息时通知用户。我很高兴以任何方式重构我的代码,以便在我收到插入消息时通知我的 node.js(如果这是我需要做的)。

但我只是不太确定从哪里开始。

我的问题是我所有的消息都是通过几十个不同的来源进入mysql的,我的Insert语句在很多领域。所以我只是不知道最好的方法。

谢谢。

【问题讨论】:

【参考方案1】:

尝试查看演示文稿Why databases suck for messaging,这是关于为什么不应该使用 MySQL 等数据库进行消息传递的原因。 Messaging 和通知系统与 Event Driven Architecture 配合得很好,我建议观看 this 演示或从 here 了解有关此主题的更多信息,以便更全面地了解事件驱动的“生态系统”。

【讨论】:

链接过期了怎么办?

以上是关于使用 socket.io node.js 和传入消息的通知系统的架构实现和设计的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 使用 socket.io 进行重构

如何将 Asterisk ARI 与 socket.io 和 Node.js 一起使用

Node.js、多线程和 Socket.io

Socket.io 使用 node.js,根本没有 express?

node.js、socket.io 和 SSL

node.js + socket.io:拍卖网站开发