什么是Node.js的socket.io的Ruby等价物?

时间:2013-08-09 15:41:39

标签: ruby-on-rails node.js rubygems websocket socket.io

如果我想将使用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/

3 个答案:

答案 0 :(得分:8)

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

您可以通过realtime web tech guide找到更多选项。

答案 1 :(得分:1)

您是否看过Plezi framework

您可以将其用作单独的框架或augment Rails/Sinatra by adding websocket functionality

它使用Iodine服务器运行,并支持本机websockets,RESTful路由和HTTP流,因此很容易有一个后退位置,如长时间拉动,就像socket.io在网络时做的那样套接字不起作用。

它很有趣且易于开发,并且对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时启动。

答案 2 :(得分:0)

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

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

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

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