How do you implement WebSockets for real-time communication in a Node.js application?

WebSockets enable full-duplex communication between clients and servers. In Node.js, you can implement WebSockets using libraries like ws. Example of a simple WebSocket server:

const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });

server.on('connection', socket => {
  socket.on('message', message => {
    console.log(`Received: ${message}`);
    socket.send(`Echo: ${message}`);
  });

  socket.send('Welcome to the WebSocket server!');
});