我正在嘗試使用socket.io創建移動聊天應用程序。我打算將郵件存儲在用戶手機上的本地數據庫中,這樣我就不必對我的數據庫執行http請求來檢索舊郵件。我的聊天應用程序由多達12人的房間組成。Socket.io離線消息
在socket.io中我訂閱了這樣一個房間:socket.join(room
並通過它來廣播消息。我房間裏所有連接到套接字的用戶都會收到這條消息,而且一切正常,但是我想實現離線消息傳遞,所以如果有人沒有連接,它會將文本保存到數據庫中。我的問題是如何知道哪些用戶在線接收郵件,當我加入某個特定的房間時,是否會將用戶通過房間?因爲目前我不知道如何將消息保存在我的數據庫中,因爲套接字不知道房間中的人但不連接。
您將不得不依賴socket.io來跟蹤房間,因爲當用戶下線時,它將刪除來自房間的用戶。相反,一個房間必須保存在數據庫中,當用戶上線時,您可以在數據庫中查找它們並將它們加入到它們應該在的任何socket.io房間中。同樣,當您發送消息到一個房間,你必須在數據庫中查找房間,並將消息添加到數據庫中該用戶的消息隊列(如果他們當前不在線)。 – jfriend00