ruby-on-rails - 即时消息实现?

标签 ruby-on-rails web instant-messaging

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

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

提前致谢。

最佳答案

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

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

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

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

IM 使用 websocket 的类似例子是 Applozic聊天SDK。它使用网络套接字进行实时消息传递。

关于ruby-on-rails - 即时消息实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563291/

相关文章:

ruby-on-rails - 使用 React Rails 显示关联的模型数据

ruby-on-rails - 可追溯的匿名重复记录

web - 在 Go Web 应用程序中使用全局变量来存储数据库句柄是个好主意吗?

html - 嵌套的 Flexbox + 图片

android - 检查消息是否已通过 whatsapp 成功发送

mysql - 使用 ruby​​ on rails 在 Ubuntu 上安装 MySQL [错误]

ruby-on-rails - Rails 4.2 如何计算指纹摘要

android - WhatsApp - 编写克隆(iphone、android、wp7)

javascript - 如何在网站上输出数组中的最小值

syntax-highlighting - 带有代码格式化程序/荧光笔的 IM 客户端(或插件)