我正在尝试使用Ruby 2.6通过WebSocket与CoinEx(加密货币交换)API进行通信。我有以下代码:
require 'faye/websocket'
require 'eventmachine'
url = 'wss://socket.coinex.com/'
# url = 'wss://stream.binance.com:9443/ws/ltcbtc@miniTicker'
EM.run do
ws = Faye::WebSocket::Client.new(url)
ws.on :open do |event|
p [:open]
...
end
ws.on :message do |event|
p [:message]
...
end
ws.on :close do |event|
p [:close, event.code, event.reason]
...
end
end
运行此代码时,我总是立即看到[:close, 1006, ""]
,而没有[:open]
。我深入研究了gems(faye / websocket和eventmachine),并添加了一些调试输出以更好地了解正在发生的事情。现在我的回溯如下:
/home/chernish2/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/faye-websocket-0.10.9/lib/faye/websocket/client.rb:87:in `unbind'
/home/chernish2/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:1483:in `event_callback'
/home/chernish2/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine'
/home/chernish2/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run'
/home/chernish2/soft/trader2/test/ws_test.rb:36:in `<main>'
emit_error(), message=Errno::ENETUNREACH
[:close, 1006, ""]
除了另一个URL,这对我来说真的没有任何意义
url = 'wss://stream.binance.com:9443/ws/ltcbtc@miniTicker'
工作正常,当我使用https://github.com/altangent/ccxws库(nodejs)时,它使用与代码中完全相同的URL连接到CoinEx,没有任何麻烦,这意味着我在连接CoinEx WS时没有问题端点。 那么我的代码有什么问题呢?预先谢谢你!
答案 0 :(得分:0)
哦,它现在正在运行,我这边没有任何变化。服务器端似乎出现了一些问题。