4

EventMachine Web ソケット クライアントwss://を TLS を使用して安全な Web ソケット サーバーに接続するのに問題があります。

EventMachine Web ソケット サーバーをセットアップして正常に実行しています。ブラウザから JavaScript を使用でき、接続はうまく機能します。EventMachine Web ソケット クライアント接続を機能させることができません。

証明書に問題があるのではないかと考えていますが、どうすればよいかわかりません。

ここに私のクライアントコードがあります:

require 'eventmachine'
require 'em-websocket-client'

EM.run do
    conn = EventMachine::WebSocketClient.connect("ws://0.0.0.0:9110/message")

    conn.callback do
        data = {data: 'data'}
        conn.send_msg data.to_json
    end

    conn.errback do |e|
        puts "Got error: #{e}"
    end

    conn.stream do |msg|
        puts "<#{msg}>"
        conn.close_connection
    end

    conn.disconnect do
        puts "success"
        EM::stop_event_loop
    end
end

エラーは発生しませんか? クライアントから解読できます。そしてサーバー上(デバッグモードで実行中)には以下のみが表示されます:

[[:initialize]]
[[:unbind, :connection]]

ws:// を wss:// に置き換えてみましたが、役に立ちませんでした。

ちなみに、問題から暗号化を取り除けば、すべて正常に機能します。

他の誰かがこれで成功していますか?

4

1 に答える 1

1

現在、接続をEventMachine::WebSocketClientサポートしていないことが判明しました。wss://サーバーはそうしますが、それは別のプロジェクトです。

サポートしているfaye-websocket-rubyを使用することになりましたwss://

README.md に使用方法の例があります。

于 2013-04-03T18:06:57.953 に答える