Prerequisites

  • Python installed on your machine
  • Basic understanding of Python and JavaScript
  • Flask and Flask-SocketIO libraries

Step 1: Set Up the Environment

  1. Install Flask and Flask-SocketIO:Open your terminal and run:
pip install Flask Flask-SocketIO
  1. Create a Project Directory:bashCopy codemkdir chat_app cd chat_app
  2. Create the main application file:Create a file named app.py.

Step 2: Build the Backend

Open app.py and add the following code:

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

app = Flask(__name__)
socketio = SocketIO(app)

@app.route('/')
def index():
return render_template('index.html')
@socketio.on('message') def handle_message(msg):
print('Message received: ' + msg)
emit('message', msg, broadcast=True)
if __name__ == '__main__':
socketio.run(app)

Step 3: Create the Frontend

  1. Create a templates folder in your project directory.
mkdir templates
  1. Create an index.html file inside the templates folder:
<!DOCTYPE html>
<html lang="en">
<head>
&lt;meta charset="UTF-8">
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0">
&lt;title>Chat Application&lt;/title>
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.0/socket.io.min.js">&lt;/script>
&lt;style>
    body { font-family: Arial, sans-serif; }
    #messages { border: 1px solid #ccc; height: 300px; overflow-y: scroll; margin-bottom: 10px; }
    #message-input { width: 80%; }
&lt;/style>
</head> <body> <h1>Chat Application</h1> <div id="messages"></div> <input id="message-input" placeholder="Type your message here..."> <button id="send-button">Send</button> <script>
const socket = io();
socket.on('message', function(msg) {
    const messagesDiv = document.getElementById('messages');
    messagesDiv.innerHTML += '&lt;div>' + msg + '&lt;/div>';
    messagesDiv.scrollTop = messagesDiv.scrollHeight; // Auto-scroll
});
document.getElementById('send-button').onclick = function() {
    const input = document.getElementById('message-input');
    const msg = input.value;
    socket.emit('message', msg);
    input.value = ''; // Clear input
};
</script> </body> </html>

Step 4: Run Your Application

Go back to your terminal and run:

python app.py

Your chat application will start on http://localhost:5000. Open this URL in multiple tabs or different browsers to test the chat functionality.

Step 5: Enhance Your Application (Optional)

  • Usernames: Allow users to set a username.
  • Timestamps: Add timestamps to messages.
  • Message History: Store messages on the server for a richer chat experience.
  • Styling: Use CSS frameworks like Bootstrap for a better look.

Comments

Leave a Reply

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