From 69af3f60d399157a8951988fa2f91d29c553fbb5 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 25 Jul 2016 21:36:50 +0300 Subject: juick-ws: websocket terminal --- juick-ws/src/main/static/scripts.js | 36 ++++++++++++++++++++++++++++++++++++ juick-ws/src/main/static/style.css | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 juick-ws/src/main/static/scripts.js create mode 100644 juick-ws/src/main/static/style.css (limited to 'juick-ws/src/main/static') diff --git a/juick-ws/src/main/static/scripts.js b/juick-ws/src/main/static/scripts.js new file mode 100644 index 00000000..2691816d --- /dev/null +++ b/juick-ws/src/main/static/scripts.js @@ -0,0 +1,36 @@ +var Terminal = require('terminal'); +require('whatwg-fetch'); + +function ready(fn) { + if (document.readyState != 'loading') { + fn(); + } else { + document.addEventListener('DOMContentLoaded', fn); + } +} + +ready(function() { + var ws = new WebSocket('wss://ws.juick.com/_replies'); + var term = new Terminal('terminal', {}, {}); + var status = document.querySelector("#status"); + ws.onopen = function() { + term.output("
connected"); + }; + ws.onclose = function() { + term.output("
disconnected"); + } + ws.onmessage = function(msg) { + term.output("
" + JSON.stringify(JSON.parse(msg.data), null, 2)); + } + setTimeout(function() { + ws.send(" "); + }, 60000); + setTimeout(function() { + fetch("/api/status") + .then(function(response) { + return response.text(); + }).then(function(body) { + status.textContent = JSON.parse(body).clientsCount; + }) + }, 5000); +}) \ No newline at end of file diff --git a/juick-ws/src/main/static/style.css b/juick-ws/src/main/static/style.css new file mode 100644 index 00000000..ee5ec6b7 --- /dev/null +++ b/juick-ws/src/main/static/style.css @@ -0,0 +1,2 @@ +@import "normalize.css"; +@import "terminal"; \ No newline at end of file -- cgit v1.2.3