jquery - 最先进的 HTTP 推送 : jQuery, cometd?

标签 jquery ruby

stackoverflow 文件中有各种老问题,例如 this one ,其中谈论 cometd 和 friend 。但我想问问现在最好的技术是什么。是 cometd 吗?

我想使用 ruby​​ 实现基本的服务器端推送,最好是 rails(尽管可以使用 eventmachine 或类似工具)。做这个的最好方式是什么?出于这个问题的目的,假设我正在构建一个基于浏览器的聊天服务。我使用 jQuery。

现在人们用什么?有谁知道 Facebook 使用什么样的技术向浏览器推送通知?优先级(按顺序)是:

  1. 易于与 jQuery(或纯 javascript)+ 基于 Ruby 的服务器集成。
  2. 简单/优雅。
  3. 一定程度的跨浏览器兼容性(尽管不一定与 IE 6 一样旧)。
  4. 表现。

最佳答案

我试验过 socket.io并发现它在古代和现代浏览器中都能很好地工作。使用 Node.js,为消息传递总线设置服务器端是微不足道的。如果您对 Node.js 感到不舒服,我建议您查看 eventmachine。

为了扩展您正在构建的消息传递服务,您的服务器需要能够同时处理许多长时间运行的连接。传统网络服务器在设计时并未考虑到这一点。

这是我推荐的。按照通常的方式在 Rails 中创建基础 Web 应用程序。当您提供页面时,请确保客户端上的 socket.io 连接到您的消息传递服务器(这将不同于 rails - node.js 或 eventmachine 服务器)。当您想向客户端发送消息时,您的服务器端 Rails 应用应该通过您的客户端正在收听的消息服务器发送消息。

在使用 redis pub/sub、node.js 和 socket.io 之前,我已经这样做了。当我想从 rails 服务器向客户端发送消息时,我将一条消息发布到 redis 中的一个 channel 。每个连接到消息服务(使用 node.js 或 eventmachine 构建)的客户端都将订阅 channel 并将消息推送到客户端。然后客户端可以反序列化消息并执行必要的操作。

关于jquery - 最先进的 HTTP 推送 : jQuery, cometd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060565/

相关文章:

ruby - 如何将 TLS 客户端证书与 RubyGems 注册表一起使用?

javascript - 如何使用 jplayer 获取进度事件

ruby-on-rails - Ruby on Rails - 发送联系表格 - Controller 问题

Ruby:从零开始的逆向方法

javascript php AJAX 刷新 DIV 的一部分

python - 图灵完备模板引擎

ruby - 如何将 before_filter 应用于 Rails 3.2.11 中每个 Controller 的每个操作?

JQuery 可拖动 DIV 以负边距居中...问题

javascript - 使用 jQuery 事件调整 contentWindow 高度

php - 通过电子邮件发送在 HTML5 canvas 上创建的图像