em-ws-client
私の質問はそれよりも一般的だと思いますが、私は宝石を使用しています。EventMachine受信ブロックの外部からデータを送信しようとしていますが、データが送信されるまでに非常に長い時間(〜20秒)かかります。
require "em-ws-client"
m = Mutex.new
c = ConditionVariable.new
Thread.new do
EM.run do
@ws = EM::WebSocketClient.new("ws://echo.websocket.org")
@ws.onopen do
puts "connected"
m.synchronize { c.broadcast }
end
@ws.onmessage do |msg, binary|
puts msg
end
end
end
m.synchronize { c.wait(m) }
@ws.send_message "test"
sleep 100
@ws.send_message "test"
メソッドに直接入れると、onopen
問題なく動作します。自分のバージョンが機能しない理由がわかりません。この問題はEventMachineで見つかりましたが、関連しているかどうかはわかりません。
なぜこれほど時間がかかるのですか、どうすれば修正できますか?