2013-04-27 19 views
3

我有一個應用程序,有Facebook登錄。用戶有一個影響其他用戶的行爲。我希望受影響的用戶能夠實時通知他們是否已登錄,否則他們會在下次登錄時看到通知。我在服務器端使用tornado(非阻塞)。數據庫是mongodb。我使用motor作爲我的異步mongodb客戶端,我想我想使用socket.io。到目前爲止,這是我覺得我應該這樣做:facebook like龍捲風通知,mongodb

  1. 每當用戶說user1執行影響user2的動作,users收集對應於user2該行會以某種方式足以得到更新生成通知內容。

  2. 當用戶說user2登錄到網站時,它通過socket.io連接到websocket。在服務器端,在on_connect內部,所有存儲的通知都發送到客戶端,並且安裝了一個處理程序,用於監視users集合中對應於user2的行。每當它檢測到更改時,它都會發出一條消息,指示新的通知。此外,在閱讀通知時,客戶端將向服務器發送一條消息,以重置users集合中的條目。這些處理程序必須在斷開連接時取消註冊。

問題是,如何安裝這些處理​​程序?我找不到任何讓MongoDB通知我有任何變化的方法。我該怎麼做呢?

+2

的MongoDB沒有提供變更通知的任何標準方式。您需要將其添加到您的數據層代碼中。 – WiredPrairie 2013-04-28 02:31:20

回答