<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Chatter</title></head><body><script src="/socket.io/socket.io.js"></script><script>constsocket=io.connect('http://localhost:3000');socket.on('message',(data)=>{// listen to messageconsole.log(data);// send message to clientsocket.emit('another event',{jeremy:'I am great thank you'});});</script></body></html>
constapp=require('express')();// execute express right awayconstserver=require('http').Server(app)// http serverconstio=require('socket.io')(server);constport=3000;server.listen(port,()=>{console.log(`Server is running on port ${port}`);});// ------------------------------------ run serverapp.get('/',(req,res)=>{res.sendFile(__dirname+'/public/index.html');})io.on('connection',(socket)=>{console.log('user connected');// send a message to serversocket.emit('message',{manny:'hey how are you?'});// wait an eventsocket.on('another event',(data)=>{console.log(data);})});
server(index.js) io.on('onnection’, to user → socket.emit('message', { user1: 'hello'}); send a message → socket.on('another event', (data) => {console.log(data); })
client(index.html) const socket = io.connect('http://localhost:3000'); to connect to server → socket.on('message', (data) => { to listen to a message from server → socket.emit('another event', {user2: 'hi'});
// room nameconstroom='javascript';$('form').submit(()=>{letmsg=$('#m').val();socket.emit('message',{msg,room});// set the room when send message$('#m').val('');returnfalse;});socket.on('connect',()=>{// emiting to everybodysocket.emit('join',{room:room});// take the join event with its room name})
make room feature on the server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tech.on('connection',(socket)=>{// join by roomsocket.on('join',(data)=>{// take an object { msg, room }socket.join(data.room);tech.in(data.room).emit('message',`New user joined ${data.room} room!`);// io.in(room).emit('message', 'msg');});// send message by roomsocket.on('message',(data)=>{// take an object { msg, room }socket.join(`message: ${data.msg}`);tech.in(data.room).emit('message',data.msg);});socket.on('disconnect',(data)=>{console.log('user disconnected');tech.in(data.room).emit('message','user disconnected');})})
Make a client page to enter each rooms (index.html, javascript.html)
change name of index.html to javascript.html to call from the menu
<divclass="jumbotron jumbotron-fluid"><divclass="container"><h1class="display-3">Techspacechatter</h1>
<pclass="lead">Selectwhichroomyou'd like to join below!</p>
</div>
</div>