我有一个可以进行实时聊天的应用程序。聊天是在客户端和服务器端(nodejs)上使用Faye实现的。
现在此客户端聊天已在Rails应用程序中使用,当我的页面重新加载/刷新时,我不想丢失在以下情况下可能发生的消息:
我重新加载页面
我从数据库获取聊天记录
聊天另一侧的用户写了5行
我渲染页面
我缺少5条最近的记录
我想听听您对解决这个问题的意见。我想到的是一个消息队列,其中未传递给客户端的消息将只在那里等待,然后在通过javascript打开页面时被提取。
如果有人确认消息队列非常适合使用zeromq或在我已经在使用的redis中实现简单队列(不想使用很多技术),我也希望您发表意见。
最佳答案
Redis有很多令人印象深刻的队列功能,发布/订阅系统等选择。另一端的ZeroMQ更像是分布式应用程序的IPC层,您必须在其上实现任何高级抽象。就像比较HTTP和TCP。