JSFiddle - React, Tailwind, and code Playground
HTML
<button id ="button" onclick="testClose()">
test
</button>
JavaScript
openWebsocket("test")
console.clear();
// Open websocket
function openWebsocket(channels) {
var self = window;
if (self.reconnectTimeout) {
clearTimeout(self.reconnectTimeout);
self.reconnectTimeout = undefined;
}
this.websocket = new WebSocket("ws://localhost:8080");
this.websocket.onopen = function () {
self.websocket.send(JSON.stringify({ channels: channels }));
console.log('WebSocket Client Connected');
};
this.websocket.onclose = function (event) {
console.log('WebSocket Client Closed', event.code);
// Retry connection if not closed intentionally
if (event.code != 4000) {
if (self.reconnectTimeout) {
clearTimeout(self.reconnectTimeout);
self.reconnectTimeout = undefined;
}
setTimeout(self.openWebsocket.bind(self, channels), 5000);
}
};
this.websocket.onmessage = function (e) {
console.log(e);
};
}
function testClose(){
window.websocket.close(4000, "manual close");
}