feat: backend web-sockets solution

This commit is contained in:
Ante Brähler
2024-11-19 18:10:57 +00:00
parent d431e032f0
commit 45781aaff0
14 changed files with 424 additions and 96 deletions

47
backend/server.js Normal file
View File

@@ -0,0 +1,47 @@
const express = require('express');
const dotenv = require('dotenv');
const channelController = require('./controllers/ChannelController');
const streamController = require('./controllers/StreamController');
dotenv.config();
const app = express();
app.use(express.json());
const apiRouter = express.Router();
apiRouter.get('/', channelController.getChannels);
apiRouter.get('/current', channelController.getCurrentChannel);
app.use('/channels', apiRouter);
const PORT = 5000;
const server = app.listen(PORT, () => {
console.log(`Server listening on Port ${PORT}`);
streamController.start();
});
// Web Sockets
const io = require('socket.io')(server)
const connectedUsers = {}
io.on('connection', socket => {
socket.on('new-user', name => {
connectedUsers[socket.id] = name
socket.broadcast.emit('user-connected', name)
})
socket.on('disconnect', () => {
socket.broadcast.emit('user-disconnected', connectedUsers[socket.id])
delete connectedUsers[socket.id]
})
ChannelSocketHandler(io, socket);
ChatSocketHandler(io, socket);
})