【问题标题】:Ruby wamp-client gem - connection to crossbar.ioRuby wamp-client gem - 连接到 crossbar.io
【发布时间】:2016-02-01 09:09:03
【问题描述】:

我是 Ruby 新手

我正在尝试使用 wamp-client gem 建立与 crossbar.io 路由器的连接。 Crossbar 具有通过 crossbar 模板(python 作为后端)创建的所有默认设置和应用程序。当我通过浏览器连接时,一切都很好,但是当我尝试通过简单地使用 ruby​​ 时

require  "wamp/client"
wamp_test = WAMP::Client.new("ws://127.0.0.1:8080") 
wamp_test.open

我有一个 `handle_opening_handshake_response':未处理的打开握手响应 # (Net::WS::Error)' 错误。 我知道要处理握手,我的 WAMP 路由器应该发送 HTTP 101 交换协议,但它没有这样做(在 wireshark 中看不到)。 请帮帮我。

客户请求:

GET / HTTP/1.1\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-Websocket-Key: RggxGCwmcnVuEB08UQMCWA==\r\n
Sec-Websocket-Version: 13\r\n
Sec-Websocket-Protocol: \r\n
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\n
Accept: */*\r\n
User-Agent: Ruby\r\n
Host: localhost:8080\r\n
\r\n
Full request URI: http://localhost:8080/
HTTP request 1/1

路由器返回:

HTTP/1.1 200 OK\r\n
Server: Crossbar/0.11.1\r\n
Date: Mon, 01 Feb 2016 07:48:33 GMT\r\n
Cache-Control: max-age=43200, public\r\n
Expires: Mon, 01 Feb 2016 19:48:33 GMT\r\n
Accept-Ranges: bytes\r\n
Content-Length: 5085\r\n
Content-Type: text/html\r\n
Last-Modified: Thu, 28 Jan 2016 13:07:24 GMT\r\n
\r\n
HTTP response 1/1
Line-based text data: text/html

【问题讨论】:

    标签: ruby websocket rubygems crossbar wamp-protocol


    【解决方案1】:

    使用默认(生成的)Crossbar.io 配置时,请尝试:ws://127.0.0.1:8080/ws 而不是 ws://127.0.0.1:8080。 WAMP-WebSocket 传输位于子路径上。

    您可以在浏览器中打开http://127.0.0.1:8080http://127.0.0.1:8080/ws 进行查看。

    另外:您的客户端未发送有效的 WebSocket 子协议列表(Sec-Websocket-Protocol 为空)。 Crossbar.io 有一个配置选项可以接受(并假设 wamp.2.json),但更好的行为是在您的 WebSocket 客户端库中激活 WebSocket 子协议协商。

    【讨论】:

    • 我添加了 wamp_test = WAMP::Client.new("ws://127.0.0.1:8080/ws", :subprotocols => ["wamp.2.json"]) 和现在 Sec-Websocket-Protocol 是 wamp.2.json 但仍然没有连接 - 同样的错误。这个红宝石宝石很旧,所以我不确定它是否支持 WAMPv2
    • 查看一下通过 Google 快速搜索可以找到的 WAMP 的两个 Ruby 实现,仅根据它们的年龄,它们都不支持 WAMP v2。
    猜你喜欢
    • 2017-01-11
    • 2016-07-21
    • 1970-01-01
    • 2011-06-02
    • 2021-08-16
    • 2018-03-24
    • 2013-08-09
    • 2020-02-09
    • 1970-01-01
    相关资源
    最近更新 更多