我很难让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://无济于事。
顺便说一句,如果我从问题中解决加密问题,一切正常。
其他人在这方面取得了成功吗?
答案 0 :(得分:1)
事实证明,目前EventMachine::WebSocketClient
不支持wss://
个连接。服务器可以,但这是一个单独的项目。
我最终使用支持wss://
README.md中有一些关于如何使用的例子。