From 05a90b7b7a96d4a7a0502d46f8adce2d7c7a4691 Mon Sep 17 00:00:00 2001 From: Jessie Murray Date: Sun, 18 Jul 2021 15:38:28 -0700 Subject: [PATCH] Add "PING" button to HTML demo --- tests/websocket.html | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/tests/websocket.html b/tests/websocket.html index 049ff00..77ee9db 100644 --- a/tests/websocket.html +++ b/tests/websocket.html @@ -55,6 +55,14 @@ +
+
+
+
 
+
+
+
+
@@ -95,6 +103,14 @@
+
+
+
+
 
+
+
+
+
@@ -132,8 +148,9 @@ const host = "127.0.0.1"; const port = 7379; class Client { - constructor(type, getSerializer, setSerializer) { + constructor(type, pingSerializer, getSerializer, setSerializer) { this.type = type; + this.pingSerializer = pingSerializer; this.getSerializer = getSerializer; this.setSerializer = setSerializer; this.ws = null; @@ -158,6 +175,13 @@ class Client { }; }); + $(`${this.type}-btn-ping`).addEventListener('click', event => { + event.preventDefault(); + const serialized = this.pingSerializer(); + this.log("sent", serialized); + this.ws.send(serialized); + }); + $(`${this.type}-btn-set`).addEventListener('click', event => { event.preventDefault(); const serialized = this.setSerializer($(`${this.type}-set-key`).value, $(`${this.type}-set-value`).value); @@ -180,6 +204,7 @@ class Client { setConnectedState(connected) { $(`${this.type}-btn-connect`).disabled = connected; + $(`${this.type}-btn-ping`).disabled = !connected; $(`${this.type}-set-key`).disabled = !connected; $(`${this.type}-set-value`).disabled = !connected; $(`${this.type}-btn-set`).disabled = !connected; @@ -205,10 +230,12 @@ class Client { addEventListener("DOMContentLoaded", () => { const jsonClient = new Client('json', + () => JSON.stringify(['PING']), (key) => JSON.stringify(['GET', key]), (key, value) => JSON.stringify(['SET', key, value])); const rawClient = new Client('raw', + () => '*1\r\n$4\r\nPING\r\n', (key) => `*2\r\n$3\r\nGET\r\n$${key.length}\r\n${key}\r\n`, (key, value) => `*3\r\n$3\r\nSET\r\n$${key.length}\r\n${key}\r\n$${value.length}\r\n${value}\r\n`); });