【问题标题】:WebSockets - Ratchet (Thruway)WebSockets - 棘轮(高速公路)
【发布时间】:2016-11-12 11:32:17
【问题描述】:

在 OSX 上使用 Chrome 时连接到 websocket 服务器时出现问题。

如果我尝试使用 Firefox 连接到服务器,它运行良好,但如果我使用 Chrome,则会出现错误消息:

WebSocket 握手期间出错:意外响应代码:302。

如果您需要更多信息,请告诉我。

【问题讨论】:

  • 它可以在我的 chrome 中运行,但是,我正在运行 win 10。问你两个问题:页面是否真的对你说:“这个浏览器支持 WebSocket。”?您是否检查过 chrome 调试工具中的网络选项卡并将其与 firebug 的网络流量进行比较?
  • 是的,情况很奇怪。在大多数设备和浏览器上它都可以工作,但对于我最新的 osx 和 chrome 却不行。我们用 3 个带有 chrome 的 mac 设备对其进行了测试,但它在任何地方都不起作用。从屏幕上可以看到:dropbox.com/s/b5uol7cqa09hder/…
  • 能否请您也显示请求和响应标头?这是否也发生在匿名模式中?
  • 这里是 .har 内容,我可以向您展示的所有内容pastebin.com/5QkVBP6A
  • 匿名窗口也一样。以下是一些测试 URL: ws: ws://dev.unisim.cz:8888/ wws - 端口 4444 上的 NGINX SSL 代理: wss://dev.unisim.cz:4444/ wws - 端口 443 上的 Apache SSL 代理: wss://ws.dev.unisim.cz/

标签: javascript websocket ratchet handshake thruway


【解决方案1】:

Thruway 实际上是一个 WAMPv2 路由器和客户端(允许 RPC 和 pub/sub 模式),而不是 websocket.org 回显测试所期望的原始 websocket。我不知道为什么它会允许任何浏览器中的任何内容。

如果您正在寻找与 PHP 的原始 websocket 通信,请查看 https://github.com/ratchetphp/Ratchethttps://github.com/ratchetphp/Pawl(Thruway 将这些库用于 websocket 相关任务。)

【讨论】:

  • 我们不是在寻找原始的 websocket。我们想使用 pub/sub 模式,但 websockets.org 是复制相同状态/错误的在线测试软件之一。
  • 问题是当您尝试连接到 Thruway 路由器时,它希望客户端使用 wamp.2.json 子协议。如果您使用原始 websockets 连接,它将拒绝升级连接。如果您正在查看浏览器端,您将需要一个 WAMP 客户端,例如 autobahn js
  • 对不起,我给了你不好的例子来在线测试。我们正在使用精确的高速公路 js。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多