diff --git a/api.js b/api.js new file mode 100644 index 0000000..7d9becf --- /dev/null +++ b/api.js @@ -0,0 +1,33 @@ +const ws = require('ws') + +//WS server +const wss = new ws.Server({ + port: 8081, + perMessageDeflate: { + zlibDeflateOptions: { + // See zlib defaults. + chunkSize: 1024, + memLevel: 7, + level: 3 + }, + zlibInflateOptions: { + chunkSize: 10 * 1024 + }, + // Other options settable: + clientNoContextTakeover: true, // Defaults to negotiated value. + serverNoContextTakeover: true, // Defaults to negotiated value. + serverMaxWindowBits: 10, // Defaults to negotiated value. + // Below options specified as default values. + concurrencyLimit: 10, // Limits zlib concurrency for perf. + threshold: 1024 // Size (in bytes) below which messages + // should not be compressed. + } +}); + +//WS handler +wss.on('connection', ws => { + ws.on('message', message => { + if (message.split(';', 2)[0] === 'message') wss.clients.forEach(clients => clients.send(message)) + }) + ws.send('websocket connected') +}) \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index d42f59d..3b9c23d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -44,6 +44,26 @@ export default { newMessage } } + +const wsurl = 'ws://127.0.0.1:8081' +const socket = new WebSocket(wsurl) + +socket.onopen = () => { + socket.send('new session') +} +socket.onerror = (error) => { + console.log(`WebSocket error: ${error}`) +} +//socket.onclose = () => show_error('session timed out (refresh)') +/*socket.onmessage = (e) => { + console.log(e.data) + let msg = e.data.split(";", 2) + if (msg[0] === 'error') show_error(msg[1]) + else if (msg[0] === 'surl') { + document.getElementById('surl-input').value = msg[1] + document.getElementById('surl-popup').style.display = 'block' + } +}*/