我有一个运行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的控制器请求广播方法。那可能吗?