簡體   English   中英

在MongoDB中存儲socket.io創建的套接字

[英]Store socket created by socket.io in MongoDB

我正在嘗試使用Express,Socket.io和MongoDB(通過mongoose / node mongo本機驅動程序)創建基於Node.js的應用程序。

我的問題是,除了通過WebSockets建立與客戶端的連接之外,我還獲得了存儲和處理在數據庫中最佳的其他信息。 然后隨着事件的到來我根據附加信息和套接字尋找客戶端我向這些客戶發送通知。

我的問題 - 是否有可能將使用套接字連接創建的對象存儲到數據庫中?

如果沒有,我的想法是將它們與一個額外的變量一起存儲在一個數組中,這將允許他們通過數據庫中找到的項目查找其他信息。 我對嗎?

客戶端 - >創建連接 - >發送數據 - >服務器 - >搜索數據庫以匹配數據 - >匹配套接字到已建立的數據 - >通過已創建的套接字發送通知

誠摯

對於任何通過Google遇到此問題的人來說,似乎現在有一個socket.io-mongo模塊來處理這個問題。

您可以在mongodb中保留一個套接字列表及其所屬的節點進程,然后在需要將消息傳遞到特定套接字時向該進程發送消息。 像每條消息一樣的東西

{delivery_to:all}或{delivery_to:[1,2,3,4]},其中number是套接字ID。

但優雅的方法是在mongodb中使用上限集合,並讓所有進程監聽集合並處理屬於該進程的任何消息。 可以在此處找到使用mongodb的隊列實現的良好描述。

http://www.10gen.com/presentations/mongosv-2011/mongodb-as-a-message-queue

好吧,我不知道它是否最適合消息隊列,但正如你提到的mongoose。 從客戶端,您可以使用消息和房間ID(任何唯一的隨機ID,必須加入初始連接到服務器或應該注冊到服務器,只需創建一個房間)到服務器的http請求,並在服務器中使用mongoose將消息保存到mongodb ,現在使用mongoose schema post方法,在mongoose保存后將消息發送到房間。 所以它確實是pub sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM