我有一個運行Puma的Ruby應用程序。現在我想添加一個websocket來向連接的客戶端廣播REST請求。我設法只是在我config.ru加入一些代碼來創建與EM-的WebSocket創業板的WebSocket服務器:添加em-websocket到我的Puma應用程序
require_relative 'config/environment'
require 'em-websocket'
Socket = EM.run {
@channel = EM::Channel.new
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 2929, :debug => true) do |ws|
ws.onopen {
sid = @channel.subscribe { |msg| ws.send msg }
@channel.push "#{sid} connected!"
ws.onmessage { |msg|
@channel.push "blubb"
}
ws.onclose {
@channel.unsubscribe(sid)
}
}
end
}
run Rails.application
現在的問題是,當我運行「軌道服務器-b 0.0.0.0」 WebSocket的是運行但我的應用程序不是。當連接到本地主機:3000我得到一個時間。 我能做些什麼來運行它們?
後續問題:如何通過websocket向連接的客戶端進行廣播?我想添加到REST的控制器請求廣播方法。那可能嗎?