我希望能够通过javascript客户端进程获取服务器返回的HTTP状态码,当客户端发起websocket升级请求并且该请求失败时。
我的服务器返回HTTP 400来表示websocket升级失败。
我正在使用Google Chrome,当我打开开发者控制台时,可以看到以下消息:
WebSocket连接到'wss://'失败: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"}