代码之家  ›  专栏  ›  技术社区  ›  Michael

EventMachine Web套接字客户端TLS连接

  •  4
  • Michael  · 技术社区  · 13 年前

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

    我有一个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 回复  |  直到 13 年前
        1
  •  1
  •   Michael    13 年前

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

    我最终使用了 faye-websocket-ruby 它确实支持 操作系统://

    README.md中有关于如何使用的示例。