我正在尝试使用pusher连接到Liquid Exchange的Stream API。 Documentation here
我构造了一个与Pusher库的文档一致的函数。 Link to that here 我当前的代码如下:
require 'pusher-client'
channels_client = PusherClient::Socket.new('LIQUID', {
ws_host: 'tap.liquid.com'
})
运行该错误消息:
D,[2019-08-20Txx:xx:xx.xxxxxx #xxxxx]调试-:绑定 pusher:已建立与pusher_global_channel的连接
D,[2019-08-20Txx:xx:xx.xxxxxx #xxxxx]调试-:绑定 pusher:connection_disconnected与pusher_global_channel
D,[2019-08-20Txx:xx:xx.xxxxxx #xxxxx]调试-:绑定推杆:错误 到pusher_global_channel
D,[2019-08-20Txx:xx:xx.xxxxxx #xxxxx]调试-:绑定推杆:ping 到pusher_global_channel
如果我尝试在第一个命令后运行此命令:
channels_client.connect
...它拒绝连接。
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/pusher-client-0.6.2/lib/pusher-client/websocket.rb:17:in 'initialize':由于目标机器,无法建立连接 积极拒绝。 -为“ tap.liquid.com”端口80连接(2) (Errno :: ECONNREFUSED)
答案 0 :(得分:1)
错误来自websocket第17行中的tcpsocket.new(Ruby https://ruby-doc.org/stdlib-2.5.1/libdoc/socket/rdoc/TCPSocket.html):https://github.com/pusher-community/pusher-websocket-ruby/blob/master/lib/pusher-client/websocket.rb
ws_host tap.liquid.com 80似乎无效,https://pusher.com/docs/channels/library_auth_reference/pusher-websockets-protocol
我已经尝试过至少在浏览器中使用安全连接,并且为ws和无效请求获得了404,在这种情况下,对于https(https://tap.liquid.com/)来说是个好选择。
您需要在客户端配置中配置ssl,但是pusher-client gem和我发现的其他非常古老。切换到https://github.com/pusher/pusher-http-ruby/blob/master/README.md
这样的最新库也许是明智的该示例直接包含用于激活的SSL的选项。