如果我想将使用socket.io的节点应用程序转换为Ruby on Rails应用程序,那么替换socket.io的选项有哪些? (基本上是为Ruby寻找套接字服务器)
计划翻译以下申请: http://www.tokbox.com/blog/creating-chat-roulette-with-node-js-socket-io-and-opentok/
答案 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的标准配置!