awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
miguelgrinberg avatar

miguelgrinberg/Flask-SocketIO

0
View on GitHub↗
5,509 stars·897 forks·Python·mit·17 views

Flask SocketIO

Flask-SocketIO is a Flask extension that integrates the Socket.IO real-time communication protocol into Flask applications, enabling persistent bidirectional connections between servers and clients. It transparently switches between WebSocket and HTTP long-polling while maintaining a persistent session identity, and provides a full event-driven framework for real-time web application communication.

The library distinguishes itself with support for namespace multiplexing, allowing event handlers to be isolated into separate namespaces with independent lifecycle and routing. It also offers room-based pub-sub messaging, organizing clients into named groups for efficient targeted broadcasting. Authentication during the connection handshake, cross-origin request restriction, and separate real-time session storage prevent conflicts with HTTP sessions. Additional capabilities include disconnect reason inspection, a request-reply event pattern, wildcard event routing, and the ability to emit events to connected clients from external processes through a shared message queue.

Flask-SocketIO supports horizontal scaling across multiple server instances by using a message queue to synchronize events and session state. It provides access to the Flask application context and authenticated user inside event handlers, along with built-in error handling for event processing.

Features

  • Real-Time Web Communication - Provides persistent bidirectional connections for live data exchange in web applications using Socket.IO and Flask.
  • Event Stream Broadcasters - Broadcasts real-time events to connected clients with room targeting and optional acknowledgment callbacks.
  • Custom Event Broadcasting - Listens for custom events from clients and broadcasts responses to individuals, groups, or all connections.
  • Socket Event Synchronization Queues - Synchronizes broadcasts and session state across multiple server instances using a shared message queue.
  • Room-Based Message Routing - Organizes connected clients into named rooms and routes messages to targeted subsets for precise delivery control.
  • Targeted Client Group Messaging - Organizes connected clients into named groups to send targeted events to specific subsets of users.
  • WebSocket and Fallback Connection Establishment - Establishes low-latency persistent bidirectional connections using WebSocket with automatic HTTP long-polling fallback.
  • Namespace Multiplexing - Isolates event handlers into separate namespaces with independent lifecycle and event routing for real-time communication.
  • Socket Client Lifecycle Event Handlers - Triggers custom logic when a client connects, disconnects, or changes state, with optional authentication and rejection.
  • Connection Lifecycle Management - Manages the full lifecycle of socket connections including identity verification, cross-origin requests, and session persistence.
  • WebSocket and HTTP Fallback Transports - Switches between WebSocket and HTTP long-polling transparently while maintaining a persistent session identity.
  • Room-Based Client Grouping - Organizes clients into named rooms for targeted broadcasting and efficient event delivery to specific groups.
  • Room-Based Pub-Sub Broadcasting - Organizes clients into named rooms and broadcasts events to specific groups using a pub-sub mechanism.
  • Server Event Handlers - Provides server-side event handler registration for listening to and responding to real-time client events.
  • Flask Socket.IO Integrations - Integrates the Socket.IO protocol into the Flask web framework for real-time bidirectional communication.
  • Real-Time Frameworks - Establishes persistent bidirectional connections between servers and clients using WebSocket with automatic HTTP fallback.
  • Distributed Socket Server Scaling - Distributes real-time connections across multiple server instances using a message queue for coordinated broadcasting.
  • Socket Connection - Distributes real-time client connections and events across multiple server instances using a shared message queue.
  • Distributed Socket Event Coordination - Uses a shared message queue to synchronize events across multiple worker processes for horizontal scaling.
  • External Process Emissions - Emits events from external processes to connected clients through a shared message queue.
  • Handshake Credential Validators - Validates client credentials during the handshake using token or other authentication methods before granting channel access.
  • Authenticated User Context in Socket Events - Exposes the authenticated user inside event handlers and provides a decorator to disconnect unauthenticated clients.
  • Utilities and Helpers - Socket.IO integration.
  • Websockets - Listed in the “Websockets” section of the Awesome Python awesome list.
  • WebSocket - Socket.IO integration for Flask applications.

Star history

Star history chart for miguelgrinberg/flask-socketioStar history chart for miguelgrinberg/flask-socketio

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Flask SocketIO

These projects share indexed features with Flask SocketIO. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • googollee/go-socket.iogoogollee avatar

    googollee/go-socket.io

    5,787View on GitHub↗

    go-socket.io is a Go implementation of the Socket.IO protocol used to build real-time, bidirectional, and event-driven communication between servers and clients. It functions as a communication framework that manages persistent connections and maps incoming network packets to specific handler functions to execute application logic. The library enables horizontal scaling of real-time connections through a distributed pub/sub adapter, which synchronizes events across multiple server instances using an external data store. It ensures reliability across different network environments by automatic

    Go
    View on GitHub↗5,787
  • socketio/socket.io-clientsocketio avatar

    socketio/socket.io-client

    10,601View on GitHub↗

    Socket.IO Client is a real-time WebSocket client library that establishes persistent bidirectional connections to a server, with automatic fallback to HTTP long-polling when WebSocket connections are unavailable. It provides an event-based bidirectional messaging framework where clients and servers exchange named events with serializable data, supporting acknowledgements and timeouts for reliable communication. The client distinguishes itself through automatic reconnection with exponential backoff, maintaining connection reliability by monitoring health and reconnecting with increasing delays

    browserjavascriptnodejs
    View on GitHub↗10,601
  • mrniko/netty-socketiomrniko avatar

    mrniko/netty-socketio

    7,021View on GitHub↗

    netty-socketio is a Java implementation of a Socket.IO server designed for real-time bidirectional communication between clients and servers. It functions as a real-time event engine and WebSocket communication server, utilizing the Netty network framework to manage high-performance socket connections. The project enables distributed socket server scaling by acting as a distributed message broker. It synchronizes client states and broadcasts messages across multiple server nodes through the use of an external data store. The system manages traffic via namespace-based connection routing and r

    Javajavanettypolling
    View on GitHub↗7,021
  • sockjs/sockjs-clientsockjs avatar

    sockjs/sockjs-client

    8,518View on GitHub↗

    sockjs-client is a JavaScript library that provides a WebSocket-compatible API for real-time, bidirectional communication between a web browser and a server. It functions as a transport-layer abstraction that ensures a stable full-duplex connection by emulating socket behavior. The library is distinguished by its automatic protocol-fallback mechanisms. When native WebSockets are unavailable or blocked by restrictive network environments, such as firewalls or proxies, it switches to HTTP-streaming emulation or XHR-polling to maintain connectivity. It covers capabilities for cross-domain data

    JavaScriptjavascriptreal-timesockjs
    View on GitHub↗8,518
Compare all 30 related projects→

Frequently asked questions

What does miguelgrinberg/flask-socketio do?

Flask-SocketIO is a Flask extension that integrates the Socket.IO real-time communication protocol into Flask applications, enabling persistent bidirectional connections between servers and clients. It transparently switches between WebSocket and HTTP long-polling while maintaining a persistent session identity, and provides a full event-driven framework for real-time web application communication.

What are the main features of miguelgrinberg/flask-socketio?

The main features of miguelgrinberg/flask-socketio are: Real-Time Web Communication, Event Stream Broadcasters, Custom Event Broadcasting, Socket Event Synchronization Queues, Room-Based Message Routing, Targeted Client Group Messaging, WebSocket and Fallback Connection Establishment, Namespace Multiplexing.

Which projects share features with miguelgrinberg/flask-socketio?

Projects with overlapping indexed features include: googollee/go-socket.io — go-socket.io is a Go implementation of the Socket.IO protocol used to build real-time, bidirectional, and event-driven… socketio/socket.io-client — Socket.IO Client is a real-time WebSocket client library that establishes persistent bidirectional connections to a… mrniko/netty-socketio — netty-socketio is a Java implementation of a Socket.IO server designed for real-time bidirectional communication… sockjs/sockjs-client — sockjs-client is a JavaScript library that provides a WebSocket-compatible API for real-time, bidirectional… socketio/socket.io-client-java — This is a Java library for establishing real-time bidirectional communication with servers using the Socket.IO… liveblocks/liveblocks — Liveblocks is a realtime collaboration infrastructure platform that synchronizes application state, documents, and…