实时聊天,不想丢失消息 – 使用队列(redis,zeromq)?

我有一个应用程序,有一些实时聊天。 聊天是在客户端和服务器端(nodejs)使用Faye实现的。

现在这个客户端聊天被用在rails应用程序中,当我的页面重新加载/刷新时,我不想丢失在以下情况下可能发生的消息:

  • 我重新加载页面
  • 我从DB获取聊天logging
  • 聊天对方的用户写入5行
  • 我呈现的页面
  • 我错过了5个最近的logging

我想听听你对解决这个问题的意见。 我有一个类似于消息队列的东西,在那里没有传递给客户端的消息只是在那里等待,并在以后通过javascript来访问页面。

我也希望你的意见,如果有人证实,消息队列是适合使用zeromq或在redis中实现简单的队列,我已经使用(不想要很多技术)。

Redis拥有令人印象深刻的队列function,pub / sub系统等。另一方面,ZeroMQ更像是分布式应用程序的IPC层,您必须对其进行任何高级抽象。 这就像比较HTTP和TCP。