NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2703 most downloaded on PyPI
Socket.IO integration for Flask applications
Last release 7 months ago
21 Feb 2026
Release timing varies
gaps range from 3 weeks to 12 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
95 releases · first in 2014
See CHANGES.md for release notes.
See CHANGES.md for release notes.
Session fixes for Flask >= 3.1.3 #2153 ( commit )
Update SocketIO constructor documentation #2151 ( commit )
Switch to the Furo documentation template ( commit )
See CHANGES.md for release notes.
See CHANGES.md for release notes.
One column per quarter.
Use Flask test client's own environ dict if it is available #2142 ( commit )
Add Python 3.13, 3.14 and pypy-3.11 to CI builds, drop 3.8 and 3.9 ( commit )
Documentation: Added an example using the init_app() method #2110 ( commit )
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGES.md for release notes.
Add a reason argument to the disconnect handler ( commit )
Upgrade the code to more recent Python versions ( commit #1 commit #2 )
Remove misleading warning about use of gevent-websocket in the documentation #2122 ( commit )
fix typo in deployment documentation #2119 ( commit ) (thanks Maximilien Tirard !)
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGES.md for release notes.
Prevent crash when client sends empty event ( commit )
Handle events with catch-all namespace #2061 ( commit )
Add unit test for background tasks ( commit )
Drop Python 3.7, add Python 3.12, upgrade to pypy 3.10 ( commit )
See CHANGES.md for release notes.
See CHANGES.md for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Fixed cookie handling in Test Client for Flask >= 2.3 #1982 ( commit )
Correctly handle ConnectionRefusedError in connect handler #1959 ( commit )
More secure nginx configuration examples #1966 ( commit ) (thanks Lorenzo Leonardini !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Deliver callbacks from different namespaces #1909 ( commit )
Fix documentation typos #1881 ( commit ) (thanks Tim Gates !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Add call() function to emit to the client and wait for the callback response #1830 ( commit )
Manage each test client's connection state independently #1829 ( commit )
Support new Flask 2.2 session structure #1856 ( commit )
Do not allow Werkzeug to be used in production by default #1814 ( commit )
Fix documentation typo #1857 ( commit ) (thanks Vincent Kuhlmann !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Better handling of message_queue connection argument #1130 ( commit )
More robust handling of to and room arguments of emit and send #1771 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
No need to push a new app context in the test client #1669 ( commit )
Remove 3.6 and pypy-3.6 builds, add 3.10 and pypy-3.8 ( commit )
Improve documentation on start_background_task() function ( commit )
changed room argument to to in documentation examples #1665 ( commit ) (thanks David McInnis !)
Fix documentation typo #1793 ( commit ) (thanks Gabe Rust !)
Fix example code in documentation #1787 ( commit ) (thanks Louis-Justin TALLOT !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Only use SSL socket if at least one SSL kwarg is not None #1639 ( commit ) (thanks JT Raber !)
Remove unused SSL arguments from eventlet server options #1639 ( commit )
Remove executable permissions from files that lack shebang lines #1621 ( commit ) (thanks Ben Beasley !)
Improved project structure ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Add reloader_options argument to socketio.run #1556 ( commit )
Pass auth data from client in connect event handler #1555 ( commit )
Do not show simple-websocket install prompt if it is already installed ( commit )
Fix namespace bug in example #1543 ( commit )
Added index to documentation #724 ( commit )
Fixed typo in documentation #1551 ( commit ) (thanks Mayank Anuragi !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Document the use of simple-websocket with the development web server ( commit )
Show transport in example apps ( commit )
Added Open Collective funding option ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Silence deprecation warning from Werkzeug 2.x #1549 ( commit )
Updated server options in documentation ( commit )
Updated socketio javascript client versions in documentation ( commit )
Fix typo in documentation #1524 ( commit ) (thanks lennertcl !)
Change room documentation from room= to to= #1519 ( commit ) (thanks David McInnis !)
Fixed a type in the Kafka URL in the documentation #1476 ( commit ) (thanks VVakko !)
Fixed typos in documentation #1447 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Fix handling of argument #1441 ( commit )
Add python-engineio to version compatibility table ( commit )
Test client: pass packets through an encode/decode cycle #1427 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Move to python-socketio 5.x and the 3.x JavaScript releases ( commit )
Also see python-socketio change log
Also see python-engineio change log
add @socketio.event convenience decorator ( commit )
Rename room argument to to ( commit )
Documentation updates ( commit ) ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Only use python-socketio 4.x versions as dependencies for now ( commit )
Added troubleshooting section to the documentation ( commit )
Fixed incorrect use of has_request_context #1324 : #1325 - Added proper call to has_request_context function Co-authored-by: igor_kantorski igor.kantorski@globedata.pl ( commit ) (thanks igoras1993 !)
Move builds to GitHub actions ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Handle callbacks for emits outside of request context #1054 ( commit )
Improve test client unit test to use two concurrent clients ( commit )
Accept skip_sid argument in emit #1147 ( commit )
Fix is_connected() method in test client (Fixes https://github.com/miguelgrinberg/python-socketio/issues/385 ) ( commit )
Log warning when gevent is used but WebSocket is missing #1140 ( commit ) (thanks Eric Rodrigues Pires !)
More accurate logging documentation ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Add support for Apache Kafka message queue #700 ( commit ) (thanks Vincent Mézino !)
Update CORS documentation ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Address potential websocket cross-origin attacks #128 ( commit )
Documentation for the Same Origin security policy ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Fix typo in "Using nginx" section #1007 ( commit ) (thanks Steffen Schneider !)
updated python-socketio min version requirement to 4.0.0 #1006 ( commit ) (thanks Shantanu Hazari !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Add ConnectionRefusedError exception from python-socketio #989 ( commit )
Invoke Socket.IO callbacks with app and request context #262 ( commit )
Copy handler's name and docstring to handler wrapper #573 ( commit )
Less aggressive monkey patching for gevent #413 ( commit )
Updates jquery and socket.io in example application #988 ( commit ) (thanks sillyfrog !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
move to the latest python-socketio 4.x releases ( commit )
SocketIOTestClient can handle disconnect event from server #967 ( commit ) (thanks Jack !)
example app: disconnect in callback function #453 ( commit )
update documentation for skip_sid argument supporting lists ( commit )
add /static block to nginx configuration example #222 ( commit )
add notes on monkey patching #383 ( commit )
note the event names that are reserved in the documentation ( commit )
minor doc improvements #960 ( commit )
updated some requirements ( commit )
add link to stack overflow for questions ( commit )
helper release script ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
discontinue the customized flask run command ( commit )
spelling corrected #869 ( commit ) (thanks Muhammad Hamza !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
move to the new WSGIApp class in python-socketio ( commit )
remove misleading target keyword arg in examples ( commit )
Fix test client [call]back returning #732 ( commit ) (thanks Alex Pilon !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
undoing fix for #713 as it breaks the reloader for regular apps ( commit )
README.md: Add syntax highlighting to python code #723 ( commit ) (thanks Meet Mangukiya !)
Fix typo in docs #717 ( commit ) (thanks Grey Li !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
minor fix for Flask 1.0 ( commit )
add pypy3 target to travis builds ( commit )
remove outdated warning about gunicorn R19 #563 ( commit )
improved documentation for disconnect() #673 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
support --with #659 ( commit ) (thanks Kareem Zidane !)
add optional namespace argument to disconnect function ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
add optional sid argument to disconnect function ( commit )
Fix typo in index.rst #650 Fix typographical error in the Authentication section of the file. ( commit ) (thanks Michael Obi !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
make managed session more like a real session ( commit )
Update docs link #613 ( commit ) (thanks Grey Li !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Support binary data in the test client #601 ( commit )
Update docs now gevent-websocket is available for python3 #599 ( commit ) (thanks Andrew Burrows !)
fix param name in doc string #585 ( commit ) (thanks Grey Li !)
Add missing json argument in send #587 ( commit ) (thanks Grey Li !)
improved documentation on acknowledgements ( commit )
Support Redis SSL connection string #569 ( commit ) (thanks Ján Koščo !)
updated requirements #534 ( commit )
prevent race conditions with thread start #493 ( commit )
Documented some protocol defaults. #516 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
some more unit tests ( commit )
Support custom headers and query string in test client #520 ( commit )
added **kwarg to pywsgi.WSGIServer when import WebSocketHandler failed #518 there is any reason to not pass **kwarg pywsgi.WSGIServer in the case WebSocketHandler fail to import? ( commit ) (thanks simus81 !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
also add ignore_queue to send function ( commit )
expose ignore_queue param in the emit method #505 ( commit ) (thanks hsvlz !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
added flask-login to sessions example ( commit )
updated example requirements file ( commit )
better support for user sessions ( commit )
remove unused code related to previous commit ( commit )
Support beaker (and possibly other) sessions ( commit )
Fix typo in top level doc #452 ( commit ) (thanks Ben Harack !)
Added an optional IPv6 support in eventlet ( commit ) (thanks Pavel Pushkarev !)
fix KeyError ( commit )
cleanup previous merge ( commit )
Fix 'path' or 'resource' doesn't work. ( commit ) (thanks Water Zheng !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
add documentation for #433 ( commit )
specify namespace in room related functions ( commit ) (thanks Samuel Kortchmar !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
allow @socket.on decorators to be chained #408 ( commit )
add 3.6 builds, remove 3.3 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
updated test client to work with latest python-socketio release #405 ( commit )
add support for using zmq as the message queue transport ( commit ) (thanks Eric Seidler !)
Fix a typo #400 ( commit ) (thanks Jordan Suchow !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Do not call init_app when an app or message_queue aren't given #367 ( commit )
Improved nginx section of the documentation #334 ( commit )
Pass client manager specific arguments in emit and send calls ( commit )
Pass client manager specific arguments in emit and send calls ( commit )
Support for "skip_sid" option. #365 ( commit )
Make sure the test client is not used with a message queue #366 ( commit )
Update custom namespace doc example #364 ( commit ) (thanks LikeMyBread !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Use standard run command if flask-socketio isn't instantiated #347 ( commit )
Improve socketio connect function in example for http[s] ( commit ) (thanks Kyle Lawlor !)
preserve options given in constructor when init_app is called #321 ( commit )
include license and readme in the package #326 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
uwsgi support, class-based namespaces ( commit )
fix failing unit test ( commit )
Add on_event(), the non-decorator version of on() ( commit ) (thanks Stefan Otte !)
improved callback handling on test client ( commit )
add explicit eventlet.wsgi import #309 ( commit )
fix document typos: messaque -> message #304 ( commit ) (thanks 朱 ✖️ : (ง •_•)ง木犀 !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Your coding agent can read these notes before it upgrades. Set up the MCP server →