ngrok 与 websocket 不起作用,找不到 Sec-WebSocket-Accept

问题描述 投票:0回答:1

我有一个位于 .ngrok.io 后面的网络服务器,当我通过 ws://.ngrok.io/ws/ 与 websocket.org 连接到它时,它就可以工作

我还有一个可以连接到我的网络服务器或 echo.websocket.org 服务器的设备。

为什么当我将设备连接到 ws://****.ngrok.io/ws/ 时,我收到“TRANSPORT_WS: Sec-WebSocket-Accept not found”,但当我使用 echo 时不会发生这种情况.websocket.org。除了地址之外,我没有对我的设备(使用 ESP-IDF 的嵌入式板)进行任何更改。

我的 ngrok 中是否缺少设置?我的命令行是 ./ngrok http http://0.0.0.0:8000 在 ngrok 终端中,它看起来甚至没有检测到 GET /ws/ 连接,它保持空白。

有趣的是,如果我删除设备中的 /ws/ 路径,ngrok 能够看到连接,但路由错误(因为我的服务器使用 /ws/ 路径作为 websocket)

websocket ngrok esp-idf
1个回答
0
投票

如果您想使用 ngrok 进行 WebSocket,您应该使用 'tcp' 参数,因为 WebSocket 在 TCP 上运行,而不是 HTTP。

ngrok tcp http://0.0.0.0:8000

使用生成的 URL 并将“tcp://”替换为“ws://”。 WebSocket 作为服务器,不通过 HTTP 访问。

© www.soinside.com 2019 - 2024. All rights reserved.