8

我创建了一个异步版本的 Rails 3,我想与 WebSocket 实现集成。

我正在使用 EventMachine、Ruby 1.9、Fibers 和各种 em-flavored 库,正如邪恶的Ilya Grigorik所记录的那样。

我一直将em-websocket视为 WebSocket 连接的处理程序,但不确定将其连接到 Rails 应用程序的最佳方法。

理想情况下,这将以与带有 Express 和 Socket.io 的 node.js 类似的方式工作 -应检测传入连接并将其分派到 WebSocket 处理程序或常规 rails 堆栈,如 HTTP 标头 & 等所示

TL;博士

  • 插入现有 Rails 应用程序的 WebSocket 处理程序
  • 透明地将传入的 WebSocket 请求分派到应用程序中的端点
4

3 回答 3

5

我知道这个问题很老,但希望这个答案可以帮助那些从谷歌那里得到指导的人。

我正在研究满足原始问题中两个主要标准的宝石。该 gem 被称为websocket-rails,它是从头开始开发的,以使在 Rails 应用程序中使用 WebSockets 变得非常简单。它终于是一个稳定的版本,但我相信它需要更多的功能。

目前,事件处理是非常基础的。有一个events.rb文件,您可以在其中将客户端事件映射到与该routes.rb文件类似的控制器操作。所有请求/websocket都传递到嵌入式 WebSocket 服务器,而无需单独的服务器进程。

该项目更雄心勃勃的目标是最终将 Rails 迁移到更传统的 MVC 模式,其中客户端浏览器上的事件冒泡到服务器以处理和更新模型将自动触发客户端上的事件以更新该模型的渲染表示.

对于任何反馈,我们都表示感谢。

于 2012-06-03T22:35:34.527 回答
2

看看

您需要使用Thin,但您可以升级 HTTP 请求。我在 Sinatra 应用程序中使用它,但它应该在 Rails 中同样容易使用。

于 2011-05-30T04:11:57.683 回答
1

也许试试socky?至于现在它是最好的,它很容易与 Rails 集成(2 和 3)

于 2010-11-22T18:17:49.757 回答