Tech Radioo

Your Daily Dose of Tech

Create a Simple Web Socket Server with Node.js

Creating a WebSocket server with Node.js is a easy process using the ws library, which is a popular library for handling WebSocket connections. Here is s a step-by-step guide on how to set up a simple WebSocket server:

1. Steps to Create a WebSocket Server in Node.js Install Node.js and ws library: First, ensure you have Node.js installed. If not, you can download it from Node.js official website. Then, install the ws library.

$ npm init -y   
$ npm install ws

2. Create the WebSocket Server: Here is a basic example of a WebSocket server using the ws library:

// Import the WebSocket library
const WebSocket = require('ws');

// Create a WebSocket server on port 8080
const wss = new WebSocket.Server({ port: 8080 });

// Event listener for when a client connects
wss.on('connection', (ws) => {
    console.log('A new client connected.');

    // Send a welcome message to the client
    ws.send('Welcome to the WebSocket server!');

    // Event listener for when the server receives a message from the client
    ws.on('message', (message) => {
        console.log(`Received: ${message}`);

        // Echo the message back to the client
        ws.send(`You said: ${message}`);
    });

    // Event listener for when the client disconnects
    ws.on('close', () => {
        console.log('Client disconnected.');
    });
});

console.log('WebSocket server is running on ws://localhost:8080');

3. Run the WebSocket Server: Save the above code in a file (e.g., server.js), and then run the WebSocket server using Node.js:

$ node server.js

The server will start listening for WebSocket connections on ws://localhost:8080.

4. Test the WebSocket Server: You can test the WebSocket server using a client in your browser or a WebSocket client tool. Here’s how to do it using the browser’s JavaScript console:

// Open the browser console (F12 in most browsers)
const socket = new WebSocket('ws://localhost:8080');

// Event listener for when a connection is established
socket.onopen = () => {
    console.log('Connected to WebSocket server');
    socket.send('Hello Server!'); // Send a message to the server
};

// Event listener for when a message is received from the server
socket.onmessage = (event) => {
    console.log(`Server says: ${event.data}`);
};

// Event listener for when the connection is closed
socket.onclose = () => {
    console.log('Disconnected from WebSocket server');
};

Explanation:

  • WebSocket.Server: Creates a WebSocket server listening on a specified port (8080 in this case).
  • wss.on('connection'): Event triggered when a client connects to the server.
  • ws.on('message'): Event triggered when a message is received from a client.
  • ws.send(): Sends a message from the server to the client.

Additional Features:

  • You can handle different types of messages by parsing the data and responding accordingly.
  • For production, you might want to handle errors, set up proper authentication, and manage more complex client-server interactions.

This is a basic implementation, but you can build on it by adding more functionality, such as broadcasting messages to all clients, handling JSON data, and integrating it with HTTP servers.

Leave a Reply

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