存储聊天消息的推荐方法 (node.js)
Recommended approach to storing chat messages (node.js)
这是我第一次开发需要聊天功能的 Web 应用程序。有多个房间,并且没有限制可以加入一个房间的人数。我无法理解的部分是存储消息的实际方法。这个问题分为两个部分……首先,我是否正确地假设除非所有消息都存储在数据库中,否则新连接的用户不能保留所有以前的消息?其次,不建议在发送时将每条消息保存到数据库中吗?如果它们不是实时保存的,我还能如何跟踪?
多谢指教,感激不尽
持久性是一项业务需求,是的,除非您有某种持久性存储,否则新用户看不到以前的消息。您当然可以永久存储消息,许多应用程序都可以这样做。您也可以暂时存储它们,让消息在一定时间后过期并被删除。所有这些都可以使用 MongoDB 和 Redis 等常用工具轻松完成。如果您不需要保留消息,那么您将需要使用网络套接字在客户端之间发送消息。可能最著名的 Node 库是 Socket.io
如果你想把数据存入内存,每隔一段时间持久化一次,可以用redis。此外,如果所有数据都需要存储以供将来参考,您可以实施调度程序,如 resque 将数据从 redis 传输到您的数据库,并为应用程序状态数据(即最新数据)释放 redis ).
希望这对您有所帮助...
谢谢
这是我第一次开发需要聊天功能的 Web 应用程序。有多个房间,并且没有限制可以加入一个房间的人数。我无法理解的部分是存储消息的实际方法。这个问题分为两个部分……首先,我是否正确地假设除非所有消息都存储在数据库中,否则新连接的用户不能保留所有以前的消息?其次,不建议在发送时将每条消息保存到数据库中吗?如果它们不是实时保存的,我还能如何跟踪?
多谢指教,感激不尽
持久性是一项业务需求,是的,除非您有某种持久性存储,否则新用户看不到以前的消息。您当然可以永久存储消息,许多应用程序都可以这样做。您也可以暂时存储它们,让消息在一定时间后过期并被删除。所有这些都可以使用 MongoDB 和 Redis 等常用工具轻松完成。如果您不需要保留消息,那么您将需要使用网络套接字在客户端之间发送消息。可能最著名的 Node 库是 Socket.io
如果你想把数据存入内存,每隔一段时间持久化一次,可以用redis。此外,如果所有数据都需要存储以供将来参考,您可以实施调度程序,如 resque 将数据从 redis 传输到您的数据库,并为应用程序状态数据(即最新数据)释放 redis ).
希望这对您有所帮助...
谢谢