単純なeventmachineWebソケットサーバー(eventmachine 1.0.0)があります。
EM.run {
# WebSocket Server
EM::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
ws.onopen do
sid = @channel.subscribe{|msg| ws.send msg }
puts "* new WebSocket client <#{sid}> connected!"
end
ws.onmessage do |msg|
puts "* websocket client <#{@sid}> : #{msg}"
end
ws.onclose do
@channel.unsubscribe(sid)
puts "* websocket client <#{@sid}> closed"
end
end
}
次のコードを使用して、JavaScriptクライアントを介して接続しようとしています。
socket = new WebSocket("ws://localhost:8080");
socket.onopen = function(e) {
socket.send('Connesso');
};
socket.onmessage = function(mess) {
if (mess) {
socket.send(mess);
}
};
socket.onclose = function(e) {
socket.send('Disconnesso');
};
以前のバージョンのサファリでは、クライアントがサーバーに接続していない最新バージョンで問題なく動作していました。
前回のChromeDev安定版でも試してみましたが、動作しません。
Webソケットヘッダーが送信されますが、保留状態のままです。
Webソケットにテキストメッセージを送信すると、を受け取りますINVALID_STATE_ERR: DOM Exception 11
。
ドラフトの変更があるのを見ましたが、em-websocket0.3.8はすでにそれを実装していると思いました。
この問題の解決を手伝ってもらえますか?
どうもありがとう