这是交易。我也想用ruby on rails框架开发websocket服务器客户端。然而,ruby-on-rails与eventmachine并不是很友好。我一直都有一个websocket客户端,所以我设法从现有的lib中复制/剪切/粘贴,并最终得到以下两个基本的东西。
EM-的WebSocket服务器
https://gist.github.com/ffaf2a8046b795d94ba0
ROR友好的WebSocket客户
https://gist.github.com/2416740
在脚本目录服务器代码,开始像Ruby代码如下。
# Spawn a new process and run the rake command
pid = Process.spawn("ruby", "web_socket_server.rb",
"--loglevel=debug", "--logfile=#{Rails.root}/log/websocket.log",
:chdir=>"#{Rails.root}/script") #,
:out => 'dev/null', :err => 'dev/null'
Process.detach pid # Detach the spawned process
那么你的客户端可以使用这样
ws = WebSocketClient.new("ws://127.0.0.1:8099/import")
Thread.new() do
while data = ws.receive()
if data =~ /cancel/
ws.send("Cancelling..")
exit
end
end
end
ws.close
我希望有一个很好的ROR友好EM-的WebSocket客户端,但不能罚款一个呢。
一旦你使服务器/客户端运行良好,auth。并且数据库支持不能与其他rails代码大不相同。 (我指的是具有客户端与一些认证/ DB限制)