我想使用 Ruby on Rails 构建一个即时消息应用程序,但我对实现感到困惑。
IM 应用程序(如 Facebook 上的应用程序)通常是如何实现的?我认为我们可以使用推送服务器(服务器推送给客户端)或轮询(客户端询问服务器),但还有其他方法吗?这两种方法的相应优势是什么?哪一种通常效率更高且要求更低?
提前致谢。
最佳答案
轮询:在轮询的情况下,浏览器会定期向服务器发出请求以检查更新。它会增加你的服务器负载。
服务器发送事件:server sent events . Server-Sent Events 从一开始就被设计成高效的。使用 SSE 进行通信时,服务器可以随时将数据推送到您的应用,而无需发出初始请求。
WebSockets:另一方面,WebSockets 需要全双工连接和新的 Web Socket 服务器来处理协议(protocol)。
最适合 IM 的是 websocket,因为使用 websocket 你可以进行双向通信。
IM 使用 websocket 的类似例子是 Applozic聊天SDK。它使用网络套接字进行实时消息传递。
关于ruby-on-rails - 即时消息实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563291/