diff --git a/README.md b/README.md index 5b2eae08..2a67267b 100644 --- a/README.md +++ b/README.md @@ -779,7 +779,7 @@ wsServer.on('connection', (socket, request) => { } catch (err) { // all errors that could be thrown during the // execution of operations will be caught here - socket.close(1011, err.message); + socket.close(4500, err.message); } }), }, @@ -875,7 +875,7 @@ wsServer.on('connection', (socket, request) => { if (err instanceof Forbidden) { // your magic } else { - socket.close(1011, err.message); + socket.close(4500, err.message); } } }); @@ -946,7 +946,7 @@ wsServer.on('connection', (socket, request) => { } catch (err) { // all errors that could be thrown during the // execution of operations will be caught here - socket.close(1011, err.message); + socket.close(4500, err.message); } }), // pong received, clear termination timeout diff --git a/docs/interfaces/client.clientoptions.md b/docs/interfaces/client.clientoptions.md index 0f94827e..464a0c7c 100644 --- a/docs/interfaces/client.clientoptions.md +++ b/docs/interfaces/client.clientoptions.md @@ -166,7 +166,7 @@ ___ How many times should the client try to reconnect on abnormal socket closure before it errors out? The library classifies the following close events as fatal: -- `1011: Internal Error` +- `4500: Internal server error` - `4400: Bad Request` - `4401: Unauthorized` _tried subscribing before connect ack_ - `4406: Subprotocol not acceptable` diff --git a/src/__tests__/client.ts b/src/__tests__/client.ts index 1c103a2d..5c228bb7 100644 --- a/src/__tests__/client.ts +++ b/src/__tests__/client.ts @@ -1211,7 +1211,7 @@ describe('reconnecting', () => { }; await testCloseCode(4406); console.warn = warn; - await testCloseCode(1011); + await testCloseCode(4500); await testCloseCode(4400); await testCloseCode(4401); await testCloseCode(4409); diff --git a/src/__tests__/use.ts b/src/__tests__/use.ts index 0d9aacb0..4cedfe39 100644 --- a/src/__tests__/use.ts +++ b/src/__tests__/use.ts @@ -144,7 +144,7 @@ for (const { tServer, startTServer } of tServers) { }), ); await client.waitForClose((event) => { - expect(event.code).toBe(1011); + expect(event.code).toBe(4500); expect(event.reason).toBe(error.message); expect(event.wasClean).toBeTruthy(); }); @@ -175,7 +175,7 @@ for (const { tServer, startTServer } of tServers) { }); await client.waitForClose((event) => { - expect(event.code).toBe(1011); + expect(event.code).toBe(4500); expect(event.reason).toBe(error.message); expect(event.wasClean).toBeTruthy(); }); @@ -275,7 +275,7 @@ for (const { tServer, startTServer } of tServers) { }); await client.waitForClose((event) => { - expect(event.code).toBe(1011); + expect(event.code).toBe(4500); expect(event.reason).toBe('The GraphQL schema is not provided'); expect(event.wasClean).toBeTruthy(); }); @@ -311,7 +311,7 @@ for (const { tServer, startTServer } of tServers) { ); await client.waitForClose((event) => { - expect(event.code).toBe(1011); + expect(event.code).toBe(4500); expect(event.reason).toBe( 'Invalid return value from onSubscribe hook, expected an array of GraphQLError objects', ); @@ -336,7 +336,7 @@ for (const { tServer, startTServer } of tServers) { ); await client.waitForClose((event) => { - expect(event.code).toBe(1011); + expect(event.code).toBe(4500); expect(event.reason).toBe(error.message); expect(event.wasClean).toBeTruthy(); }); @@ -353,7 +353,7 @@ for (const { tServer, startTServer } of tServers) { // ws.emit('error', emittedError); // await client.waitForClose((event) => { - // expect(event.code).toBe(1011); // 1011: Internal Error + // expect(event.code).toBe(4500); // 4500: Internal server error // expect(event.reason).toBe(emittedError.message); // expect(event.wasClean).toBeTruthy(); // because the server reported the error // }); diff --git a/src/client.ts b/src/client.ts index c8df4dd4..1e94a3d9 100644 --- a/src/client.ts +++ b/src/client.ts @@ -314,7 +314,7 @@ export interface ClientOptions { * How many times should the client try to reconnect on abnormal socket closure before it errors out? * * The library classifies the following close events as fatal: - * - `1011: Internal Error` + * - `4500: Internal server error` * - `4400: Bad Request` * - `4401: Unauthorized` _tried subscribing before connect ack_ * - `4406: Subprotocol not acceptable` @@ -710,7 +710,7 @@ export function createClient(options: ClientOptions): Client { if ( isLikeCloseEvent(errOrCloseEvent) && [ - 1011, // Internal Error + 4500, // Internal server error 4400, // Bad Request 4401, // Unauthorized (tried subscribing before connect ack) 4406, // Subprotocol not acceptable diff --git a/src/use/fastify-websocket.ts b/src/use/fastify-websocket.ts index cb1fd18a..2885dba2 100644 --- a/src/use/fastify-websocket.ts +++ b/src/use/fastify-websocket.ts @@ -47,7 +47,7 @@ export function makeHandler< const { socket } = connection; socket.on('error', (err) => - socket.close(1011, isProd ? 'Internal Error' : err.message), + socket.close(4500, isProd ? 'Internal server error' : err.message), ); // keep alive through ping-pong messages @@ -88,7 +88,10 @@ export function makeHandler< try { await cb(String(event)); } catch (err) { - socket.close(1011, isProd ? 'Internal Error' : err.message); + socket.close( + 4500, + isProd ? 'Internal server error' : err.message, + ); } }), }, diff --git a/src/use/uWebSockets.ts b/src/use/uWebSockets.ts index 299a82d0..2e19aee1 100644 --- a/src/use/uWebSockets.ts +++ b/src/use/uWebSockets.ts @@ -188,7 +188,7 @@ export function makeBehavior< try { await client.handleMessage(Buffer.from(message).toString()); } catch (err) { - socket.end(1011, isProd ? 'Internal Error' : err.message); + socket.end(4500, isProd ? 'Internal server error' : err.message); } }, close(...args) { diff --git a/src/use/ws.ts b/src/use/ws.ts index d0726bd6..085cba0c 100644 --- a/src/use/ws.ts +++ b/src/use/ws.ts @@ -54,7 +54,7 @@ export function useServer< // report server errors by erroring out all clients with the same error for (const client of ws.clients) { try { - client.close(1011, isProd ? 'Internal Error' : err.message); + client.close(4500, isProd ? 'Internal server error' : err.message); } catch (err) { firstErr = firstErr ?? err; } @@ -102,7 +102,10 @@ export function useServer< try { await cb(String(event)); } catch (err) { - socket.close(1011, isProd ? 'Internal Error' : err.message); + socket.close( + 4500, + isProd ? 'Internal server error' : err.message, + ); } }), },