13

如果我想将使用 socket.io 的节点应用程序转换为 Ruby on Rails 应用程序,有哪些替换 socket.io 的选项?(本质上是在为 Ruby 寻找一个套接字服务器)

http://socket.io/

计划翻译以下应用程序: http ://www.tokbox.com/blog/creating-chat-roulette-with-node-js-socket-io-and-opentok/

4

3 回答 3

8

我推荐Faye Ruby 实现作为可靠的服务器端实时组件。它不是 socket.io 的直接端口,而是为您提供实时基础设施和一些定义良好的消息传递概念,这些概念将帮助您移植大多数实时应用程序。

您可以通过实时网络技术指南找到更多选项。

于 2013-08-09T17:13:39.843 回答
1

你看过Plezi 框架吗?

您可以将其用作单独的框架,也可以通过添加 websocket 功能来增强 Rails/Sinatra

它使用Iodine服务器运行,并支持原生 websockets、RESTful 路由和 HTTP 流,因此很容易有一个后备位置,例如长拉,就像 socket.io 在 web 套接字不工作时所做的那样。

它很有趣且易于开发,并且对 Redis 具有原生支持,因此它允许进程和机器之间的 websocket 广播......虽然它仍在开发中,但它充满了潜力。

广播/回声 WebSocket 应用程序可能如下所示:

require 'plezi'

class Echo

  def index
    "this is an echo server - use websockets to connect. test with: https://www.websocket.org/echo.html"
  end

  def on_message data
    _echo data
    broadcast :_echo, data
  end

  def _echo data
    response << data
  end
end

Plezi.route '/', Echo

您实际上可以将代码放在 irb 控制台中,服务器将在您使用该exit命令退出 irb 的那一刻启动。

于 2014-12-06T22:58:17.433 回答
0

我强烈推荐Pubnub,它有很多包装器,包括 ruby​​。

文档非常容易理解,并且有很多教程。

我在许多 Rails 项目中使用过 Pubnub,包括树莓派项目。

Rails 5 现在内置了 ActionCable,这意味着 websockets 现在是 Rails 的标准配置!

于 2015-01-29T11:54:40.693 回答