【问题标题】:Websockets: Are Rachet & autobahn from npm compatible?Websockets:来自 npm 的 Rachet 和 autobahn 是否兼容?
【发布时间】:2018-07-26 20:55:18
【问题描述】:

我正在试验Ratchet php library。特别是,我一直在尝试将他们的 push integration 演示集成到 React 应用程序中。

他们的演示引用了a seemingly one-off version of the autobahn JS library,这与我的服务器实现相悖(几乎与他们的演示相同)。

但是,当我尝试使用 autobahn JS from npm 时,一切都崩溃了。这似乎实现了新版本的 Web Sockets 协议?

autobahn 的一次性版本通过 wamp 获取 Sec-WebSocket-Protocol 标头,Ratchet 似乎支持该标头。高速公路的npm版本通过wamp.2.json, wamp.2.msgpack...

挖掘我找到的棘轮代码this

如果堆栈中的任何组件支持 WebSocket 子协议,则返回 每个都支持在一个数组中

所以我在我的组件上实现了Ratchet\WebSocket\WsServerInterface

public function getSubProtocols()
{
    return ['wamp.2.json', 'wamp.2.msgpack'];
}

现在连接尝试进展得更远了,但还是失败了

由于违反协议而导致传输失败:意外消息类型 0

然后客户端关闭连接失败

未捕获的 DOMException:无法在“WebSocket”上执行“关闭”: code 必须是 1000,或者介于 3000 和 4999 之间。1002 两者都不是。

这里发生了什么; Ratchet 是否支持旧版本的 Web Socket 协议,或者有没有办法让这两个库成功通信?

【问题讨论】:

    标签: websocket ratchet autobahnws


    【解决方案1】:

    根据this issue on GitHub,这两个库不兼容。

    Autobahn 0.9+ 实现 wampv2,我们必须使用 高速公路 0.8,我也没有在 npm 上找到它。相反,我找到wamp1, 但我还没有测试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-26
      • 2020-01-19
      • 2020-04-30
      • 2022-11-25
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多