WebSocket fornisce una comunicazione bidirezionale in tempo reale tra server e client. In Node.js, WebSocket può essere implementato con vari moduli come ws, socket.io, sockjs, ecc. Per questa spiegazione, utilizzeremo il modulo ws.
Prima di tutto, devi installare il modulo ws usando npm (Node Package Manager):
```
npm install ws
```
Dopo aver installato il modulo ws, puoi creare un server WebSocket in Node.js come questo:
```
const WebSocket = require(‘ws’);
const wss = new WebSocket.Server({ port: 8080 });
wss.on(‘connection’, (ws) => { ws.on(‘message’, (message) => { console.log(`Received: ${message}`); ws.send(`Hello, you sent -> ${message}`); });
ws.send(‘Hello! Message from server!!’); }); ```Nell’esempio sopra, abbiamo creato un server WebSocket sulla porta 8080. Ogni volta che il server riceve una connessione dal client, invia un messaggio al client dicendo “Hello! Message from server!!”.
Anche il server WebSocket riceve qualsiasi messaggio dal client, lo registra nella console e risponde al client con “Hello, you sent -> {message}”.
Per il client WebSocket, puoi scegliere di utilizzare la WebSocket API integrata nel browser o utilizzare qualsiasi libreria disponibile. Qui c’è un esempio di semplice client websocket utilizzando l’API integrata nel browser:
```
const socket = new WebSocket(‘ws://localhost:8080’);
socket.addEventListener(‘open’, (event) => {
socket.send(‘Hello Server!’);
});
socket.addEventListener(‘message’, (event) => {
console.log(‘Message from server ‘, event.data);
});
```
Aprendo la pagina web con questo script nel browser si connetterà al server WebSocket e il server riceverà un messaggio “Hello Server!”. Anche il client riceverà un messaggio “Hello! Message from server!!” al momento della connessione e “Hello, you sent -> Hello Server!” in risposta al suo messaggio.