fix: remove accidental websocket changes

This commit is contained in:
xNewz 2025-12-30 14:15:21 +07:00
parent 026552519a
commit 7ef7abe6be
2 changed files with 5 additions and 19 deletions

View File

@ -36,23 +36,13 @@ 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 && (message === "Invalid Sec-WebSocket-Accept header" || invalidAcceptCodes.includes(error?.code))) {
if (monitor.wsIgnoreSecWebsocketAcceptHeader && error.message === "Invalid Sec-WebSocket-Accept header") {
resolve([ "101 - OK", 1000 ]);
return;
}
// Upgrade failed, return message to user
resolve([ message, error?.code ]);
resolve([ error.message, error.code ]);
};
ws.onclose = (event) => {

View File

@ -48,16 +48,12 @@ describe("Websocket Test", {
});
test("Insecure Websocket", async (t) => {
const websocketMonitor = new WebSocketMonitorType();
const wss = new WebSocketServer({ port: 0 });
t.after(() => wss.close());
await new Promise((resolve) => wss.on("listening", resolve));
const address = wss.address();
const port = typeof address === "object" && address ? address.port : 0;
const websocketMonitor = new WebSocketMonitorType();
const wss = new WebSocketServer({ port: 8080 });
const monitor = {
url: `ws://localhost:${port}`,
url: "ws://localhost:8080",
wsIgnoreSecWebsocketAcceptHeader: false,
};