EventMachine Web-socket Client TLS връзки

Имам затруднения да накарам EventMachine Web-socket клиент да се свърже със защитен уеб-socket сървър wss:// чрез TLS.

Имам настройка на EventMachine уеб-сокет сървър и работи добре. Мога да използвам javascript от браузъра и връзките работят чудесно. Просто не мога да накарам клиентските връзки на EventMachine Web-socket да работят.

Мисля, че може да е нещо със сертификатите, но не знам как да разбера.

Ето кода на моя клиент:

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:// без резултат.

Между другото всичко работи добре, ако премахна криптирането от проблема.

Някой друг да има успех с това?


person Michael    schedule 02.04.2013    source източник


Отговори (1)


Оказва се, че в момента EventMachine::WebSocketClient НЕ поддържа wss:// връзки. Сървърът го прави, но това е отделен проект.

В крайна сметка използвах faye-websocket-ruby, което поддържа wss://

В README.md има примери за това как да използвате.

person Michael    schedule 03.04.2013