gpt4 book ai didi

javascript - 在 Javascript 客户端中处理不成功的 websocket 升级请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:54 24 4
gpt4 key购买 nike

我想让一个 javascript 客户端进程在客户端发出 websocket 升级请求并且该请求不成功时获取服务器返回的 HTTP 状态代码。

我的服务器返回 HTTP 400,表明 websocket 升级不成功。

我使用的是 Google Chrome,当我打开开发人员控制台时,我可以看到以下消息:

与“wss://”的 WebSocket 连接失败:WebSocket 握手期间出错:意外的响应代码:400

但是,onerror 处理程序不包含此消息,它收到 1006 错误,但并不表示关闭是由于获得 HTTP 400 而发生的。

javascript 开发人员如何处理握手错误?我想在客户收到握手错误时向他们提供一条信息性消息。

我已将 websocket 错误放在下面,它似乎不包含任何我可以用来指示此错误是 websocket 握手错误的结果。

 Websocket Error: {"path":{"length":0},"cancelBubble":false,"returnValue":true,"srcElement":{"binaryType":"blob","protocol":"","extensions":"","bufferedAmount":0,"readyState":3,"url":"wss://<my address>","URL":"wss://<my address>"},"defaultPrevented":false,"timeStamp":1417828938039,"cancelable":false,"bubbles":false,"eventPhase":2,"currentTarget":{"binaryType":"blob","protocol":"","extensions":"","bufferedAmount":0,"readyState":3,"url":"wss://<my address>","URL":"wss://<my address>"},"target":{"binaryType":"blob","protocol":"","extensions":"","bufferedAmount":0,"readyState":3,"url":"wss://<my address>","URL":"wss://<my address>"},"type":"error"}

最佳答案

恐怕无法从 Javascript 知道协商的 HTTP 状态代码。

定义了closing codes ,而 1006 仅表示连接突然关闭,但协议(protocol)甚至允许在不提供原因的情况下关闭连接。那,连同readyState API,是您诊断问题原因的唯一工具。

关于javascript - 在 Javascript 客户端中处理不成功的 websocket 升级请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27327266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com