使用 eventmachine 设置并发网络套接字
Setup concurrent web sockets with eventmachine
我想使用 websocket-eventmachine-client gem 尝试创建多个并发网络套接字,但我不确定如何去做。
我需要使用 EM.defer 或类似的东西吗?
例如,我有 20 个 URL 需要连接和收听。
要连接到一个我可以做的事情:
EM.run do
ws = WebSocket::EventMachine::Client.connect(uri: host)
ws.onopen do
p :open
end
ws.onmessage do |msg, type|
p [:message, msg]
end
ws.onclose do |code, reason|
p :closed
end
ws.onerror do |error|
p :error
end
end
执行 20 次的代码是什么?到目前为止,我只设法获得串行连接。
最后我做了:
EM.run do
EM::Iterator.new(connections_list, connections_list.size).each do |conn, iterator|
# Connection stuff as in question
end
end
我想使用 websocket-eventmachine-client gem 尝试创建多个并发网络套接字,但我不确定如何去做。
我需要使用 EM.defer 或类似的东西吗?
例如,我有 20 个 URL 需要连接和收听。 要连接到一个我可以做的事情:
EM.run do
ws = WebSocket::EventMachine::Client.connect(uri: host)
ws.onopen do
p :open
end
ws.onmessage do |msg, type|
p [:message, msg]
end
ws.onclose do |code, reason|
p :closed
end
ws.onerror do |error|
p :error
end
end
执行 20 次的代码是什么?到目前为止,我只设法获得串行连接。
最后我做了:
EM.run do
EM::Iterator.new(connections_list, connections_list.size).each do |conn, iterator|
# Connection stuff as in question
end
end