我正在尝试使用socket.io创建移动聊天应用程序。我打算将邮件存储在用户手机上的本地数据库中,这样我就不必对我的数据库执行http请求来检索旧邮件。我的聊天应用程序由多达12人的房间组成。Socket.io离线消息
在socket.io中我订阅了这样一个房间:socket.join(room
并通过它来广播消息。我房间里所有连接到套接字的用户都会收到这条消息,而且一切正常,但是我想实现离线消息传递,所以如果有人没有连接,它会将文本保存到数据库中。我的问题是如何知道哪些用户在线接收邮件,当我加入某个特定的房间时,是否会将用户通过房间?因为目前我不知道如何将消息保存在我的数据库中,因为套接字不知道房间中的人但不连接。
您将不得不依赖socket.io来跟踪房间,因为当用户下线时,它将删除来自房间的用户。相反,一个房间必须保存在数据库中,当用户上线时,您可以在数据库中查找它们并将它们加入到它们应该在的任何socket.io房间中。同样,当您发送消息到一个房间,你必须在数据库中查找房间,并将消息添加到数据库中该用户的消息队列(如果他们当前不在线)。 – jfriend00