即时通讯实施?

Gua*_*lun 2 ruby-on-rails instant-messaging web

我想使用Ruby on Rails构建即时消息传递应用程序,但我对实现感到困惑.

IM应用程序(如Facebook上的应用程序)通常如何实现?我想我们可以使用推送服务器(服务器推送到客户端)或轮询(客户端询问服务器),但还有其他方法吗?这两种方法的相应优势是什么?哪一个通常效率更高,要求更低?

提前致谢.

Abh*_*yal 6

  1. 轮询:在轮询的情况下,浏览器会定期向服务器发出请求以检查更新.它会增加您的服务器负载.

  2. Server Sent Events:服务器发送的事件.服务器发送事件的设计从一开始就是高效的.使用SSE进行通信时,服务器可以随时将数据推送到您的应用程序,而无需提出初始请求.

  3. WebSockets:另一方面,WebSockets需要全双工连接和新的Web Socket服务器来处理协议.

对于IM最适合的是websocket,因为使用websocket可以进行双向通信.

使用websocket的IM的类似示例是Applozic聊天SDK.它使用Web套接字进行实时消息传递.