api server
This commit is contained in:
parent
6849cf1a0f
commit
16afd7e156
33
api.js
Normal file
33
api.js
Normal file
@ -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')
|
||||||
|
})
|
20
src/App.vue
20
src/App.vue
@ -44,6 +44,26 @@ export default {
|
|||||||
newMessage
|
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'
|
||||||
|
}
|
||||||
|
}*/
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="newMessageBanner">
|
<div class="newMessageBanner">
|
||||||
<textarea name="input" id="newMessageInput" class="newMessageInput" placeholder="type a message ..." type="text" v-model="content" />
|
<textarea name="input" id="newMessageInput" class="newMessageInput" placeholder="type a message ..." type="text" v-model="content" />
|
||||||
<icon style="position: absolute; right: 1rem; bottom: 0.5rem;" ic="./sym/ic_send_white_24px.svg" />
|
<icon style="position: absolute; right: 1rem; bottom: 0.5rem;" ic="../sym/ic_send_white_24px.svg" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ export default {
|
|||||||
icon
|
icon
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
content: String,
|
content: String
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
ResizeListener(document.getElementById("newMessageInput"));
|
ResizeListener(document.getElementById("newMessageInput"));
|
||||||
|
Loading…
Reference in New Issue
Block a user