Handle websocket errors with missing messages
This commit is contained in:
parent
3982f5d204
commit
7e74579312
@ -36,12 +36,23 @@ class WebSocketMonitorType extends MonitorType {
|
||||
});
|
||||
|
||||
ws.onerror = (error) => {
|
||||
const invalidAcceptCodes = [ "WS_ERR_INVALID_SEC_WEBSOCKET_ACCEPT_HEADER" ];
|
||||
let message = error?.message || "";
|
||||
|
||||
// Some ws versions may not populate the message even for invalid accept headers
|
||||
if (!message && invalidAcceptCodes.includes(error?.code)) {
|
||||
message = "Invalid Sec-WebSocket-Accept header";
|
||||
} else if (!message) {
|
||||
message = "Unknown websocket error";
|
||||
}
|
||||
|
||||
// Give user the choice to ignore Sec-WebSocket-Accept header
|
||||
if (monitor.wsIgnoreSecWebsocketAcceptHeader && error.message === "Invalid Sec-WebSocket-Accept header") {
|
||||
if (monitor.wsIgnoreSecWebsocketAcceptHeader && (message === "Invalid Sec-WebSocket-Accept header" || invalidAcceptCodes.includes(error?.code))) {
|
||||
resolve([ "101 - OK", 1000 ]);
|
||||
return;
|
||||
}
|
||||
// Upgrade failed, return message to user
|
||||
resolve([ error.message, error.code ]);
|
||||
resolve([ message, error?.code ]);
|
||||
};
|
||||
|
||||
ws.onclose = (event) => {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user