Websockets zijn een geavanceerd technologie dat real-time communicatie mogelijk maakt tussen een server en client. Het houdt eigenlijk een permanente verbinding open tussen de server en de client, zodat ze op elk moment berichten naar elkaar kunnen sturen. Dit maakt acties zoals chats, realtime updates en live tracking mogelijk.
Hier is een basisvoorbeeld van hoe u een websocket kunt implementeren in een Node.js-toepassing met behulp van de populaire “ws” library.
1. Installeer de ws library via npm in uw project:
```
npm install ws
```
1. Maak een websocket server in een Node.js bestand (bijvoorbeeld server.js):
```
const WebSocket = require(‘ws’);
const wss = new WebSocket.Server({ port: 8080 });
wss.on(‘connection’, (ws) => { ws.on(‘message’, (message) => { console.log(‘received: %s’, message); });
ws.send(‘Hello, client!’); }); ``` In dit deel wordt een ws-server gemaakt die luistert naar de poort 8080. Wanneer een nieuwe verbinding wordt gemaakt, geeft het ‘Hallo, client!’ terug naar de client. Het zal ook elk bericht loggen dat via de verbinding wordt ontvangen.1. Maak een websocket client:
U kunt een client maken in Node.js met de “ws” library voor testdoeleinden, of u kunt een browserclient maken met de native websocket API:
Node.js ws client:
```
const WebSocket = require(‘ws’);
const ws = new WebSocket(‘ws://localhost:8080’);
ws.on(‘open’, function open() {
ws.send(‘Hello, server!’);
});
ws.on(‘message’, function incoming(data) {
console.log(data);
});
```
In de browser client:
```
const socket = new WebSocket(‘ws://localhost:8080’);
socket.addEventListener(‘open’, function (event) {
socket.send(‘Hello Server!’);
});
socket.addEventListener(‘message’, function (event) {
console.log(‘Message from server: ‘, event.data);
});
```
In deze codes is er een client die een verbinding maakt met de server, ‘Hallo, server!’ naar de server stuurt en eventuele berichten van de server in de console logt.
Nu heeft u een volledige WebSocket-communicatie tussen server en client. U kunt beginnen met het implementeren van uw eigen logica volgens uw behoeften.
Zorg ervoor dat uw server continu draait tijdens uw ontwikkeling, anders wordt de verbinding niet gemaakt. U kunt hiervoor tools als Nodemon of pm2 gebruiken.
Let ook op bij het dealen met productie-omgevingen aangezien u authenticatie, error handling en meer geavanceerde set-up mogelijk moet overwegen.
Vergeet niet om uw WebSocket-verbindingen op een veilige manier te sluiten bij het beëindigen van uw applicatie. Dit kunt u doen door de close() methode aan te roepen op uw WebSocket-objecten.