简要说明:
好吧,很多天以来,我一直在寻找这个问题的答案,但似乎有关于“如何创建推送通知服务器”和类似问题的答案。我正在使用 node.js,使用 sock.js 很容易“创建”一个推送通知服务器(我听说 socket.io 不如 sock.js)。到这里都没问题。但我想要的是如何为这样的服务器建模。
详情:
好的,所以,假设我有一个应用程序,其中有一个聊天服务(这只是一个例子,实际的东西很大,你可能已经猜到了)。一个人在房间里发送消息,房间里的所有人都会收到通知。但我想要的是“有状态”聊天——也就是说,我想将消息存储在数据存储中。麻烦就在这里。将消息存储在数据库中,然后告诉所有人“嘿,有一条消息给你”。当我们只需要应用程序的一部分的实时活动时,这似乎很容易。当整个应用都是基于实时通信的时候怎么办?除此之外,我还想要一个 RESTful api。
我的解决方案(我对此并不满意)
我想做的是:(当然在服务器端)
Data Store
||
Data Layer (which talks to data store)
||
------------------
| |
Real-Time Server Restful server
在这里,实时服务器监听数据层发布的有趣事件。每当发生有趣的事情时,服务器都会通知客户端。但是哪个客户?- 这是我的方法的问题
希望你能有所帮助。:)
更新:
我想我忘了强调我问题的一个重要部分。如何实现发布订阅系统?(注意:我不想要实际的代码,我会自己管理;我需要帮助的是如何去做)。问题是我在编写代码时非常困惑 - 该怎么做(我的困惑从这个问题本身就很明显)。请提供一些参考资料或一些关于如何开始这件事的建议?