首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现即时消息传递?

实现即时消息传递?
EN

Stack Overflow用户
提问于 2012-07-19 22:43:00
回答 2查看 2.9K关注 0票数 2

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

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

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-19 23:24:32

我不知道Facebook是如何实现他们的IM服务的,但大多数基于web的IM客户端要么使用推送服务器,要么使用Jabber客户端。如果你希望用户能够通过他们自己的IM客户端与服务通信,而不仅仅是通过web前端,Jabber是好的;如果你在服务器端用收到的消息做一些有趣的事情,推送是好的。如今,轮询还没有被广泛使用。它需要与服务器推送相同的JavaScript支持,但对您的服务器来说更耗费资源。

要开始使用push,我建议您查看FayeJuggernaut

如果您对Jabber选项感兴趣,请查看JavaScript Jabber Client Library

票数 2
EN

Stack Overflow用户

发布于 2016-03-15 14:32:16

  1. 轮询:在轮询的情况下,浏览器定期向服务器发出请求,以检查更新。它会增加你的服务器负载。
  2. 服务器发送的事件:server sent events。服务器发送的事件从一开始就被设计为高效的。使用SSE进行通信时,服务器可以随时将数据推送到您的应用程序,而无需创建初始request.
  3. WebSockets: WebSockets,而需要全双工连接和新的WebSocket服务器来处理协议。

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

使用websocket的IM的一个类似示例是Applozic chat SDK。它使用web套接字进行实时消息传递。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11563291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档