You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
const express = require('express');
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3000;
|
|
const http = require('http').Server(app);
|
|
const socketserver = require('socket.io')(http);
|
|
let usernames = [];
|
|
app.use(express.static('public'));
|
|
|
|
let currentComplete = 0;
|
|
let currentPrompt = "Nothing Yet";
|
|
socketserver.on('connection', (socket)=>{
|
|
socketserver.emit('prompt sent', currentPrompt);
|
|
socketserver.emit('username list', usernames);
|
|
socketserver.emit('users connected', usernames.length);
|
|
|
|
socket.on('prompt sent', (prompt)=>{
|
|
currentComplete = 0;
|
|
currentPrompt = prompt;
|
|
socketserver.emit('prompt sent', currentPrompt);
|
|
});
|
|
socket.on('prompt completed', ()=>{
|
|
currentComplete++;
|
|
socketserver.emit('prompt completed', currentComplete);
|
|
});
|
|
socket.on('remove completed', ()=>{
|
|
currentComplete--;
|
|
socketserver.emit('prompt completed', currentComplete);
|
|
});
|
|
socket.on('user joined', (username)=>{
|
|
usernames.push(username);
|
|
socketserver.emit('username list', usernames);
|
|
socketserver.emit('users connected', usernames.length);
|
|
});
|
|
socket.on('user dropped', (username)=>{
|
|
usernames = usernames.filter((currentElement)=>{
|
|
return currentElement !== username;
|
|
});
|
|
socketserver.emit('username list', usernames);
|
|
socketserver.emit('users connected', usernames.length);
|
|
});
|
|
});
|
|
|
|
http.listen(PORT);
|