Basic Setup

2.1. Server Setup

  1. Initialize a Node.js Project
mkdir socketio-demo cd socketio-demo npm init -y
  1. Install Dependencies
npm install express socket.io
  1. Create the Server FileCreate a file named server.js with the following content:
javascriptCopy codeconst express = require('express'); const http = require('http'); const socketIo = require('socket.io'); const app = express(); const server = http.createServer(app); const io = socketIo(server); app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); io.on('connection', (socket) => { console.log('A user connected'); socket.on('disconnect', () => { console.log('User disconnected'); }); socket.on('chat message', (msg) => { io.emit('chat message', msg); }); }); server.listen(3000, () => { console.log('Server is listening on port 3000'); });

2.2. Client Setup

  1. Create the HTML FileCreate a file named index.html in the same directory as server.js:
<!DOCTYPE html> <html> <head> <title>Socket.io Demo</title> <script src="/socket.io/socket.io.js"></script> <script> document.addEventListener('DOMContentLoaded', () => { const socket = io(); const form = document.querySelector('form'); const input = document.querySelector('input'); const messages = document.querySelector('#messages'); form.addEventListener('submit', (e) => { e.preventDefault(); socket.emit('chat message', input.value); input.value = ''; return false; }); socket.on('chat message', (msg) => { const item = document.createElement('li'); item.textContent = msg; messages.appendChild(item); window.scrollTo(0, document.body.scrollHeight); }); }); </script> </head> <body> <ul id="messages"></ul> <form action=""> <input autocomplete="off" /><button>Send</button> </form> </body> </html>

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *