From 2067820714fea49be1692fa678754488ace8228b Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Thu, 6 Jan 2022 17:41:16 +0100 Subject: feat(ext/websocket): server automatically handle ping/pong for incoming WebSocket (#13172) --- cli/tests/testdata/websocket_server_idletimeout.ts | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 cli/tests/testdata/websocket_server_idletimeout.ts (limited to 'cli/tests/testdata') diff --git a/cli/tests/testdata/websocket_server_idletimeout.ts b/cli/tests/testdata/websocket_server_idletimeout.ts new file mode 100644 index 000000000..ffd88c3d3 --- /dev/null +++ b/cli/tests/testdata/websocket_server_idletimeout.ts @@ -0,0 +1,26 @@ +import { assertEquals } from "../../../test_util/std/testing/asserts.ts"; +import { deferred } from "../../../test_util/std/async/deferred.ts"; + +const errorDeferred = deferred(); +const closeDeferred = deferred(); + +const listener = Deno.listen({ port: 4502 }); +console.log("READY"); +const httpConn = Deno.serveHttp(await listener.accept()); +const { request, respondWith } = (await httpConn.nextRequest())!; +const { response, socket } = Deno.upgradeWebSocket(request, { + idleTimeout: 1, +}); +socket.onerror = (e) => { + assertEquals((e as ErrorEvent).message, "No response from ping frame."); + errorDeferred.resolve(); +}; +socket.onclose = (e) => { + assertEquals(e.reason, "No response from ping frame."); + closeDeferred.resolve(); +}; +await respondWith(response); + +await errorDeferred; +await closeDeferred; +listener.close(); -- cgit v1.2.3