📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Flask Web Framework Flask Websockets

Flask Websockets

5 min read
Add real-time WebSocket events to Flask with Flask-SocketIO: rooms, broadcast, and namespaces.

WebSockets with Flask-SocketIO

pip install flask-socketio eventlet

from flask_socketio import SocketIO, emit, join_room, leave_room

socketio = SocketIO(app, cors_allowed_origins="*")

@socketio.on("connect")
def on_connect():
    emit("connected", {"message": "Welcome!"})

@socketio.on("message")
def on_message(data):
    room = data.get("room", "general")
    emit("message", {"text": data["text"], "user": current_user.name}, room=room)

@socketio.on("join")
def on_join(data):
    join_room(data["room"])
    emit("joined", {"room": data["room"]})

@socketio.on("disconnect")
def on_disconnect():
    print("Client disconnected")

# JavaScript
// const socket = io();
// socket.emit("join", { room: "general" });
// socket.on("message", (data) => console.log(data));

if __name__ == "__main__":
    socketio.run(app, debug=True)