import express from 'express';
import { createServer } from 'node:http';
import { Server } from 'socket.io';
import morgan from 'morgan';
export const app = express();
export const server = createServer(app);
export const nodeIo = new Server(server);
app.use(morgan('tiny'));
app.get('/', (req, res) => {
res.send('
Hello world
');
});
nodeIo.on('connection', (socket) => {
console.log('a user connected', socket.id);
socket.on('node-login', (data) => {
nodeLoginWrapper(data);
})
socket.on('node-update', (data) => {
updateNodeData(data);
})
socket.on('disconnect', () => {
console.log('user disconnected');
});
// Test commands
setTimeout(() => {
const joinData = {
'clientID': "MTE5NjAwNTM2ODYzNjExMjk3Nw.GuCMXg.24iNNofNNumq46FIj68zMe9RmQgugAgfrvelEA",
'channelID': "367396189529833476",
'preset': ""
}
sendNodeCommand(socket, "node-join", joinData);
}, 2500)
//setTimeout(() => { sendNodeCommand(socket, "node-leave", {}); }, 3500)
});
function sendNodeCommand(socket, command, data) {
// TODO - Check to see if the command exists
// TODO - Check to see if the socket is alive?
// TODO - Validate the given data
socket.emit(command, data);
}
function loginNode() {
}
function registerNode() {
}
function updateNodeData(data) {
console.log("Data update sent by node: ", data);
}
function nodeLoginWrapper(data) {
console.log(`Login requested from node: ${data.id}`, data);
}