EventMachine Web套接字客户端TLS连接

时间:2013-04-02 15:14:52

标签: ruby ssl websocket eventmachine

我很难让EventMachine Web套接字客户端使用TLS连接到安全的Web套接字服务器wss://

我有一个EventMachine网络套接字服务器设置并运行正常。我可以使用浏览器中的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]]

我也尝试用wss://取代ws://无济于事。

顺便说一句,如果我从问题中解决加密问题,一切正常。

其他人在这方面取得了成功吗?

1 个答案:

答案 0 :(得分:1)

事实证明,目前EventMachine::WebSocketClient不支持wss://个连接。服务器可以,但这是一个单独的项目。

我最终使用支持wss://

faye-websocket-ruby

README.md中有一些关于如何使用的例子。