這是交易。我也想用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限制)