存储聊天消息的推荐方法(node.js)

时间:2015-02-18 23:59:56

标签: node.js apache laravel socket.io

这是我第一次开发需要聊天功能的Web应用程序。有多个房间,没有限制,有多少人可以加入一个房间。我无法理解的部分是存储消息的实际方法。问题更多的是两部分......首先,我认为除非所有消息都存储在数据库中,否则新连接的用户不能保留以前的所有消息?其次是不建议在发送时将每条消息保存到数据库中吗?如果他们没有实时保存,我怎么能跟踪?

感谢您的任何建议,感谢

2 个答案:

答案 0 :(得分:3)

如果要将数据存储在内存中并按时间间隔保留,可以使用 redis 。此外,如果需要存储所有数据以供将来参考,您可以实施调度程序,如 resque ,将数据从redis传输到数据库,并释放redis用于应用程序状态数据(即更新的数据)。

希望这会对你有帮助......

谢谢

答案 1 :(得分:1)

持久性是业务需求,是的,除非您拥有某种持久性存储,否则新用户无法看到以前的消息。您当然可以永久存储消息,许多应用程序都会这样做。您还可以临时存储它们,让邮件过期并在一段时间后删除。所有这些都可以使用MongoDB和Redis等常用工具轻松完成。如果您不需要保留消息,那么您需要使用Web套接字在客户端之间发送消息。可能最着名的Node库是Socket.io