Web Developers: Create WebSocket Chat App: HTML5, jQuery, Node.js - SkillBakery Studios

Breaking

Post Top Ad

Post Top Ad

Friday, July 17, 2026

Web Developers: Create WebSocket Chat App: HTML5, jQuery, Node.js

Web Developers: Create WebSocket Chat App: HTML5, jQuery, Node.js

Screenshot from the tutorial
Screenshot from the tutorial

Create a WebSocket Chat App Using HTML5, jQuery, and Node.js

In this tutorial, we will build a real-time chat application using WebSockets, HTML5, jQuery, and Node.js. WebSockets allow for persistent, two-way communication between the client and server, making it an ideal choice for chat applications. By the end of this tutorial, you will have a functional chat app that you can further customize and expand.

Prerequisites

Before we start, make sure you have the following installed:

  • Node.js: Download and install from nodejs.org.
  • npm: This comes bundled with Node.js.
  • A code editor: Such as Visual Studio Code, Sublime Text, or Atom.
  • Basic knowledge of HTML, JavaScript, and jQuery.

Project Setup

Step 1: Initialize the Project

First, create a new directory for your project and navigate to it in your terminal:

mkdir websocket-chat-app
cd websocket-chat-app

Next, initialize a new Node.js project:

npm init -y

This creates a package.json file with default settings.

Step 2: Install Required Packages

We will need the express and ws packages for our server. Install them using npm:

npm install express ws

Step 3: Create the Server

Create a new file named server.js in your project directory. This will serve as the backend for our chat application. Use the following code to set up a basic Express server and WebSocket server:

// server.js
const express = require('express');
const WebSocket = require('ws');
const http = require('http');

const app = express();
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });

app.use(express.static('public'));

wss.on('connection', (ws) => {
    ws.on('message', (message) => {
        // Broadcast the message to all connected clients
        wss.clients.forEach((client) => {
            if (client !== ws && client.readyState === WebSocket.OPEN) {
                client.send(message);
            }
        });
    });
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

Step 4: Create the Frontend

Now, create a new folder called public in your project directory. Inside this folder, create an index.html file and a script.js file.

HTML Structure

In index.html, add the following code:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WebSocket Chat App</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <h1>WebSocket Chat App</h1>
    <div id="chat">
        <div id="messages"></div>
        <input id="messageInput" type="text" placeholder="Type your message here..." />
        <button id="sendButton">Send</button>
    </div>
    <script src="script.js"></script>
</body>
</html>

JavaScript Functionality

Next, in script.js, add the following code to handle WebSocket connections and message sending:

// script.js
$(document).ready(function() {
    const socket = new WebSocket('ws://localhost:3000');

    socket.onmessage = function(event) {
        const message = event.data;
        $('#messages').append(`<div>${message}</div>`);
    };

    $('#sendButton').click(function() {
        const message = $('#messageInput').val();
        socket.send(message);
        $('#messageInput').val(''); // Clear input field
    });

    $('#messageInput').keypress(function(event) {
        if (event.which === 13) { // Enter key
            $('#sendButton').click();
            return false; // Prevent form submission
        }
    });
});

Step 5: Styling the Chat App

You might want to add some basic styling to improve the user interface. Create a styles.css file in the public folder with the following content:

/* styles.css */
body {
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
    margin: 0;
    padding: 20px;
}

#chat {
    background: white;
    border-radius: 5px;
    padding: 10px;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
    max-width: 600px;
    margin: auto;
}

#messages {
    height: 300px;
    overflow-y: scroll;
    border: 1px solid #ccc;
    padding: 10px;
    margin-bottom: 10px;
}

#messageInput {
    width: 80%;
    padding: 10px;
}

#sendButton {
    padding: 10px;
}

Step 6: Run the Application

Now that everything is set up, it’s time to run your application. In your terminal, execute:

node server.js

Open your web browser and navigate to http://localhost:3000. You should see your chat application interface. Open multiple tabs or windows to see the real-time messaging in action!

Conclusion

Congratulations! You’ve successfully created a WebSocket chat application using HTML5, jQuery, and Node.js. This app can be further enhanced by adding features such as user authentication, message timestamps, or even persistent message storage using a database.

Feel free to explore and expand on this foundation. Happy coding!

Another screenshot from the tutorial
Another view from the tutorial

Connect with SkillBakery Studios

Explore more tutorials, tools, and resources:

Posted by SkillBakery Studios

No comments:

Post a Comment

Post Top Ad