我想使用Ruby on Rails构建一个即时消息应用程序,但我对实现感到困惑。
即时通信应用(比如Facebook上的即时通信应用)通常是如何实现的?我认为我们可以使用推送服务器(服务器推送到客户端)或轮询(客户端请求服务器),但还有其他方法吗?这两种方法的相应优势是什么?哪一个通常更高效,要求更低?
提前谢谢。
发布于 2012-07-19 23:24:32
我不知道Facebook是如何实现他们的IM服务的,但大多数基于web的IM客户端要么使用推送服务器,要么使用Jabber客户端。如果你希望用户能够通过他们自己的IM客户端与服务通信,而不仅仅是通过web前端,Jabber是好的;如果你在服务器端用收到的消息做一些有趣的事情,推送是好的。如今,轮询还没有被广泛使用。它需要与服务器推送相同的JavaScript支持,但对您的服务器来说更耗费资源。
要开始使用push,我建议您查看Faye或Juggernaut。
如果您对Jabber选项感兴趣,请查看JavaScript Jabber Client Library。
发布于 2016-03-15 14:32:16
最适合即时通信的是websocket,因为使用websocket可以进行双向通信。
使用websocket的IM的一个类似示例是Applozic chat SDK。它使用web套接字进行实时消息传递。
https://stackoverflow.com/questions/11563291
复制相似问题