index.js 823 octets
Newer Older
Quentin Vauthier's avatar
Quentin Vauthier a validé
const {port, parser} = require('./port')
const wss = require('./websocket')
Quentin Vauthier's avatar
Quentin Vauthier a validé
const { parse } = require('path')
Quentin Vauthier's avatar
Quentin Vauthier a validé

parser.on('data', function returnStatus(data) {
    console.log(data.toString())
    wss.clients.forEach(client => {
        if(client.currentStatus === data.toString()) return
        console.log(`sending status to ${client.id}`)
        client.send(data.toString())
        client.currentStatus = data.toString()
    })
Quentin Vauthier's avatar
Quentin Vauthier a validé
})

const allowedMessages = ['lock', 'unlock', 'status']
wss.on('connection', async function connection(ws) {
Quentin Vauthier's avatar
Quentin Vauthier a validé
    port.write('status\n')
    port.flush()
    ws.on('message', function incoming(buffer) {
        const message = buffer.toString('utf8').trim()
        if(allowedMessages.includes(message)) {
            port.write(`${message}\n`)
            port.flush()
        }
    });
Quentin Vauthier's avatar
Quentin Vauthier a validé
})