Release 5.11.4 - 2024-09-02
- Prevent crash when client sends empty event (commit)
- Add missing
to
argument in manager'semit()
method #1374 (commit) (thanks Pavieł Michalkievič!) - Reorganization of server documentation #1350 (commit)
- Update documentation note about Sanic issues #1365 (commit)
Release 5.11.3 - 2024-06-19
- New
shutdown()
method added to the client #1333 (commit) - Ignore catch-all namespace in client connections #1351 (commit)
- Accept 0 as a callback id #1329 (commit) (thanks Ruslan Bel'kov!)
- Minor updates to the server and client documentation (commit)
- Remove outdated information in intro section of documentation #1337 (commit)
- Fixed typos in server documentation #1331 (commit) (thanks John Sigg!)
Release 5.11.2 - 2024-03-24
- Improved routing to catch-all namespace handlers #1316 (commit) (thanks asuka!)
- Option to disable routing in ASGIApp (commit)
Release 5.11.1 - 2024-02-05
- Connection retry option in the client #1306 (commit)
- use Socket.IO sid in transport#1299 (commit)
- Add support for Python 3.12 and drop 3.7 #1297 (commit) (thanks Hugo van Kemenade!)
Release 5.11.0 - 2024-01-06
- Support catch-all namespaces #1288 (commit) (thanks mooomooo!)
- Prevent pubsub managers from ever crashing #1262 (commit)
- Hold references to background tasks to avoid garbage collection #1191 (commit)
- Clearer documentation for the
max_http_buffer_size
argument #1272 (commit) - Improved catch-all handler documentation (commit)
- Documentation typos (commit)
- Remove documentation references to gevent-websocket, which is not needed anymore (commit)
- Remove documentation reference to outdated aioredis package #1268 (commit)
- Update requirements for Django example (commit)
- Unit test fixes for the new simple clients #1265 (commit)
Release 5.10.0 - 2023-10-15
- New
SimpleClient
andAsyncSimpleClient
classes #1237 (commit #1) (commit #2) - Reporting to Socket.IO Admin UI (https://admin.socket.io) #1164 (commit)
- Support entering and leaving rooms through pubsub client managers (commit)
- Async versions of enter_room and leave_room should be coroutines (breaking change) (commit)
- Add a
shutdown()
function for the server (commit) - Message queue optimizations #1240 (commit)
- Remove unneeded arguments from super() (commit)
- Internal code restructure (no functional changes) (commit #1) (commit #2)
- Add FastAPI and Litestar server examples (commit)
- Update Socket.IO JavaScript client to version 4.7.2 in all examples (commit)
- Update
ping_timeout
documented default to accord with current Engine.IO behavior #1255 (commit) (thanks [object Object]!) - Refactor common testing helpers into a separate module (commit)
- Migrate Python package metadata to pyproject.toml (commit)
Release 5.9.0 - 2023-09-03
- Optimized performance and memory usage for broadcasts #1233 (commit)
- Improved documentation on horizontal scaling #1099 (commit)
- Corrected user session documentation example #1170 (commit)
- Improved grammar in documentation #1175 (commit) (thanks zykron1!)
- Fix docstring typo: client/server mixup #1163 (commit) (thanks Sasja!)
- Fix typos in the documentation #1230 (commit) (thanks Alex Kuhrt!)
- Upgrade dependencies in Django server example (commit)
- Update reference JavaScript examples (commit)
- Upgrade to pypy-3.9 in unit tests (commit)
Release 5.8.0 - 2023-03-16
- Made kombu client manager more robust and efficient (commit)
- Made aio_pika client manager more robust and efficient #1142 (commit)
- Correctly handle emits to multiple rooms in the async server #1081 (commit)
- Expose the
ignore_queue
option in namespaces #1103 (commit) - Do not automatically import zmq (commit)
- TLS/SSL client documentation #1040 (commit)
- Removed incorrect reference to multiple callback invocations in documentation #1152 (commit)
- Fix documentation typo #1155 (commit) (thanks Onwuka Gideon!)
- Fix documentation typos (commit)
- Fix documentation typo in asyncio_server.py #1150 (commit) (thanks riz-j!)
- Fix documentationi type #1091 (commit) (thanks mostlycryptic!)
- Add Python 3.11 to builds (commit)
Release 5.7.2 - 2022-10-17
- Fixed disconnect implementation when using a message queue #1002 (commit)
- Fixed remote async disconnects via message queue #1003 (commit)
- Support optional payloads in msgpack implementation #981 (commit) (thanks Cromfel!)
- Recommend ASGI integration for Sanic in Documentation (commit)
Release 5.7.1 - 2022-07-15
- Add
namespaces
argument toServer
andAsyncServer
#822 (commit) - Add missing
await
in asyncio server #952 (commit) (thanks sjrodahl!)
Release 5.7.0 - 2022-07-04
- Server refuses connections on unknown namespaces #822 (commit)
- Do not send ACK packet for unknown events #824 (commit)
- Fix Python 3.11 deprecation warning #941 (commit) (thanks Jérôme Boulmier!)
- Correct handling of RedisError exception #919 (commit)
- Update Django example (commit)
- Documentation fix for async client (commit)
- Update documentation of asyncio server (commit)
- Fix documentation typo #948 (commit) (thanks mostlycryptic!)
Release 5.6.0 - 2022-04-24
- Catch and log errors in pubsub listening thread #889 (commit)
- Use new asyncio support in redis package #911 (commit)
- Add support for aiopiko version 7 and higher #897 (commit) (thanks Dmitriy!)
- Fixed documentation typo #910 (commit) (thanks Omar Costa Hamido!)
- Fix aiohttp example's background task #881 (commit)
- Bump sanic from 0.8 to 20.12.6 in /examples/server/sanic #875 (commit) (thanks dependabot[bot]!)
- Add application name to Sanic example #892 (commit) (thanks Florian Metzger-Noel!)
Release 5.5.2 - 2022-02-15
- Connect with an empty auth object instead of
None
#861 (commit) - Fix indentation in the "Rooms" docs example. #872 (commit) (thanks Ezio Melotti!)
- Remove 3.6 and pypy-3.6 builds, add 3.10 and pypy-3.8 (commit)
Release 5.5.1 - 2022-01-11
- Support multiple Kafka servers (commit) (thanks sparkingdark!)
- Include example code in flake8 pass (commit)
Release 5.5.0 - 2021-11-14
- Option to disable the SIGINT handler in the client #792 (commit)
- Do not invoke reserved events on a catch-all handler #814 (commit)
- Use correct binary packet types in the msgpack packet encoder #811 (commit)
- Add missing
call()
method to namespace classes #800 (commit) - Add missing
to
argument to namespaceemit()
andsend()
methods #810 (commit) - Configure Redis pubsub to skip subscription messages (commit)
- Migrate async Redis client manager to aioredis 2 #771 (commit) (thanks Sam Mosleh!)
- Update Python supported versions in docs (commit)
- Document how to get the connection state in the client #799 (commit)
- Improved documentation of
start_background_task()
function (commit) - Improved documentation of
call()
method #813 (commit) - Fixed intermittent test failures #572 (commit)
Release 5.4.1 - 2021-10-14
Release 5.4.0 - 2021-08-02
- Support msgpack and custom packet serializers #749 (commit)
- Return error packet if client connects to an already connected namespace (commit)
- Handle CancelledError in async pubsub managers #750 (commit)
- More robust handling of emit's "to" argument #689 (commit)
- Remove executable permissions from setup.py, which has no shebang #748 (commit) (thanks Ben Beasley!)
- Improved project structure (commit)
Release 5.3.0 - 2021-05-15
- Document WebSocket support for threading mode (commit)
- Allow functions to be used for URL, headers and auth data in client connection #588 (commit)
- Emit events to multiple rooms #605 (commit)
- More descriptive error when joining a room on a bad namespace #650 (commit)
- Document the use of arguments in the
connect_error
handler #554 (commit) - Document that callbacks cannot be used in external processes #1533 (commit)
- Improve
start_background_task()
example in the documentation #647 (commit) - Added Open Collective funding option (commit)
- Remove Python 2 from PyPI classifiers (commit)
Release 5.2.1 - 2021-04-18
Release 5.2.0 - 2021-04-17
- Pass custom authentication data with client connection #661 (commit)
- Configure the JSON decoder for safer parsing (commit) (thanks Onno Kortmann!)
- Made parsing of id field of Socket.IO packet faster and more robust (commit) (thanks Onno Kortmann!)
- Correct use of a trailing comma in Socket.IO packets with no id or data #671 (commit)
- Updated Socket.IO JavaScript client versions in documentation example (commit)
Release 5.1.0 - 2021-03-10
- Added
wait
argument to client's connect method #634 (commit) - Invoke the disconnect handler when the client initiates a disconnection #594 (commit)
- Pass auth information sent by client to the connect handler (commit)
- Catch all possible Redis errors #635 (commit)
- Reset message queue sleep timer upon reconnect (commit) (thanks Ed Serzo!)
- Fixed bad event object used by asyncio client reconnect logic #622 (commit)
- Adding missing example of async client implementation to documentation (commit) (thanks manuel!)
- Add scrolling to documentation sidebar #610 (commit) (thanks Mohammed Abdul Raheem!)
- Typo fix in documentation #602 (commit) (thanks Tim Gates!)
Release 5.0.4 - 2020-12-25
- Include error message and arguments in CONNECT_ERROR packet #590 (commit)
- Fix typos in the documentation #599 (commit) (thanks Arpit Jain!)
- Updated connection options in the documentation #597 (commit)
Release 5.0.3 - 2020-12-14
- Correct handling of user session #585 (commit)
- Performace tuning (commit)
- Updated ASGI examples to latest release (commit)
- Updated Django example to latest release (commit)
Release 5.0.2 - 2020-12-12
- Return `environ`` dictionary for a client (commit)
Release 5.0.1 - 2020-12-08
Release 5.0.0 - 2020-12-07
- Update to match the JavaScript Socket.IO 3.x releases (Socket.IO v5 protocol revision)
- Remove unnecessary binary argument (commit)
- Remove dependency on the six package (commit)
- Added version compatibility chart to README (commit)
Release 4.6.1 - 2020-11-28
- Added troubleshooting section to the documentation (commit)
- Document the use of tuples when emitting (commit)
- Handle the case of not having a previous signal handler #518 (commit) (thanks David Brooks!)
- Simplify asserts in unit tests (commit)
- Fixed route path for tornado server #494 (commit) (thanks someApprentice!)
- Use pytest as test runner (commit)
- Move builds to GitHub actions (commit)
- Fixed typo in documentation #524 (commit) (thanks Fover!)
Release 4.6.0 - 2020-05-23
- Improved handling of rejected connections #391 #487 #447 (commit)
- Fix multi-namespace disconnect logic #456 (commit)
AsyncPubSubManager
does not await forcan_disconnect()
#488 (commit) (thanks Andrei Neagu!)- Require a recipient in
call()
function in the server #476 (commit) (thanks tt2468!) - ASGI startup and shutdown lifespan handlers #468 Co-authored-by: avi [email protected] (commit) (thanks databasedav!)
- Remove references to Python 2.7 in the documentation (commit)
- Fix server example in docstring #449 (commit) (thanks wangjiancn!)
- Fix documentation typo #450 (commit) (thanks kizError!)
Release 4.5.1 - 2020-03-22
Release 4.5.0 - 2020-03-14
- Add support for client disconnects in multi-server configurations #1174 (commit)
- Initialize the client's SIGINT signal handler only if a client is created #424 (commit)
- Fix for
Server
andAsyncServer
when emitting no data #420 (commit) (thanks Aaron!) - More accurate logging documentation (commit)
AsyncClient
documentation fixes #389 (commit) (thanks Dmitry Volodin!)- Document concurrency problems with emits #403 (commit)
- Minor documentation fixes #386 (commit) (thanks Rotzbua!)
Release 4.4.0 - 2019-11-24
- Last version to support Python 2
- Support the
connect_error
event in the client #344 (commit) - Do not dispatch events for disconnected namespaces #333 (commit)
- Fix documentation typos #374 (commit) (thanks Dmitry Volodin!)
- Updated documentation with new Engine.IO client options (commit)
Release 4.3.1 - 2019-08-05
- New asyncio based RabbitMQ manager #320 (commit) (thanks salimaboubacar!)
- New Apache Kafka manager (commit)
- Pass additional options to Redis and Kombu managers #307 (commit)
- Do not allow emits on a namespace that is not connected #325 (commit)
- Disconnect Engine.IO connection when server disconnects a client #1017 (commit)
- Update CORS documentation #327 (commit)
- Updated documentation on message queue manager classes (commit)
- Documentation fixes (commit)
Release 4.3.0 - 2019-07-29
- Address potential websocket cross-origin attacks #128 (commit)
- Documentation for the Same Origin security policy (commit)
Release 4.2.1 - 2019-07-27
- Added rediss:// URL scheme to AsyncRedisManager #319 * Added rediss:// URL scheme to AsyncRedisManager * Obeyed flake8 (commit) (thanks Dylan Anthony!)
Release 4.2.0 - 2019-06-29
- Handle keyboard interrupt during reconnect #301 (commit)
- Added "to" parameter as an alias to "room" (commit)
- Correctly autodetect asgi async mode (commit)
- Improved documentation on user session behavior on disconnections #308 (commit)
Release 4.1.0 - 2019-06-03
- New @event decorator for handler registration (commit)
- Much more flexible support for static files in the server (commit)
- Move python-engineio dependency to versions 3.8 and up (commit)
- Various simplifications to examples (commit)
- Expose the sid for the connection as
sio.sid
(commit)
Release 4.0.3 - 2019-05-25
- skip_sid parameter can also be a list #202 (commit)
- Fixed Sanic documentation #193 (commit)
- Added note on CORS support for sanic #205 (commit)
- flake8 fixes (commit)
- added python 3.7 build (commit)
- added change log (commit)
- auto-generate change log during release (commit)
Release 4.0.2 - 2019-05-19
- properly handle disconnects from ios client (commit)
- updated asgi examples to the latest uvicorn (commit)
- helper release script (commit)
- fixed requirements file (commit)
- updated some requirements (commit)
Release 4.0.1 - 2019-04-26
- remove unused wait and timeout arguments from send method (commit)
- Add missing import statement for socketio in docs #289 (commit) (thanks Syed Faheel Ahmad!)
- change a typo from
client
toserver
#280 (commit) (thanks Almog Cohen!) - add link to stack overflow for questions (commit)
- Merge branch 'Keylekan-master' (commit)
- Add namespaces parameter to the self.connect call in the reconnection process (commit) (thanks quentin!)
Release 4.0.0 - 2019-03-09
- change async_handlers default to true, and add call() method (commit)
- Add ConnectionRefusedError and handling for it (commit) (thanks Andrey Rusanov!)
- fix python 2 unit test (commit)
- client disconnect does not take namespace as argument #259 (commit)
- Avoid double calls to client disconnect handlers #261 (commit)
- readme fixes (commit)
- Update sanic version in requirements.txt #255 (commit) (thanks maxDzh!)
- simplify client dependencies (commit)
Release 3.1.2 - 2019-01-30
- Type in documentation #241 (commit) (thanks Emeka Icha!)
- fix typo with quotes in doc #238 (commit) (thanks Julien Deniau!)
Release 3.1.1 - 2019-01-09
- do not use six in setup.py (commit)
Release 3.1.0 - 2019-01-03
Release 3.0.1 - 2019-01-01
Release 3.0.0 - 2018-12-22
- SocketIO client
- reorganization of examples, plus some new ones for the client (commit)
- minor example code fix (commit)
- resolve wrong variable and css element #177 (commit) (thanks iepngs!)
Release 2.1.2 - 2018-12-10
- update dependencies (commit)
Release 2.1.1 - 2018-12-05
- fix backwards compatible problems with python-engineio 3.0 (commit)
Release 2.1.0 - 2018-11-26
- ASGI support (commit)
- Fix synchronization issue in SocketIO #213 (commit) (thanks Anthony Zhang!)
- Logging improvements for write-only connections #197 (commit) (thanks Kelly Truesdale!)
- improved documentation (commit)
- updated dependencies and fixed linter error (commit)
- better handling of packets with no data (commit)
- add python 3.7 to tox (commit)
- Tornado examples readme (commit)
- Tornado docs (commit)
Release 2.0.0 - 2018-06-28
- Tornado 5 support (commit)
- Fix typo in docs #187 (commit) (thanks Grey Li!)
- Update documentation link #185 Pythonhosted.org was deprecated. (commit) (thanks Grey Li!)
- typo fix #180 (commit) (thanks Toon Knapen!)
- add pypy3 target to travis builds (commit)
Release 1.9.0 - 2018-03-07
- assigning local ret variable to none if the asyncio task is canceled #164 (commit) (thanks rettier!)
- Recoonect to redis when connection is lost #143 (commit)
Release 1.8.4 - 2017-12-11
- properly handle callbacks in multi-host configurations for asyncio (commit)
- Properly handle callbacks in multi-host configurations #150 (commit)
- aiohttp instead of flask in example HTML #91 (commit) (thanks Jacopo Farina!)
- Fix backquotes usage in docs. #146 (commit) (thanks Kane Blueriver!)
- updated socketio js client to v2.0.4 in all examples (commit)
Release 1.8.3 - 2017-11-13
- fixed memory leak on rejected connections for asyncio (commit)
Release 1.8.2 - 2017-11-13
Release 1.8.1 - 2017-10-02
- JavaScript client sends query string attached to namespace #124 (commit)
- Update README.rst (commit)
- Documented protocol defaults (commit)
Release 1.8.0 - 2017-07-26
Release 1.7.7 - 2017-07-20
- pass redis password in the URL (commit)
- redis pub/sub support set password #116 (commit) (thanks larry.liu!)
Release 1.7.6 - 2017-07-02
- async_handlers option for asyncio servers (commit)
- fixed requirements file for python 2 (commit)
- minor improvements to django example (commit)
- Django example (commit)
Release 1.7.5 - 2017-05-30
- validate namespace in disconnect call #427 (commit)
- The usage of class-based namespace There should be an additional
self
argument passed to each member function of custom Namespaces. (commit) (thanks Kaiyu Shi!) - fix misleading error message (commit)
Release 1.7.4 - 2017-03-28
Release 2.7.3 - 2017-03-22
Release 1.7.2 - 2017-03-08
- websocket support for sanic (commit)
Release 1.7.1 - 2017-02-15
- Fixed initialize() method in PubSubManager subclasses #406 (commit)
- Update README.rst Spelling correction (commit) (thanks Ken W. Alger!)
- sanic examples (long-polling only) (commit)
- fixed link in readme file (commit)
Release 1.7.0 - 2017-02-12
- redis message queue for asyncio (commit)
- updated documentation logo (commit)
- asyncio documentation and various fixes (commit)
- readme file updates (commit)
- updated public symbols (commit)
- updated package requirements (commit)
- readme files and requirements for all examples (commit)
- async namespaces, and more unit tests (commit)
- a few asyncio related fixes (commit)
- asyncio support (commit)
- fixed documentation typo #19 (commit)
- minor fixes to zeromq support (commit)
- use non-blocking eventlet zmq wrapper in listen method (commit) (thanks Eric Seidler!)
Release 1.6.3 - 2017-01-23
- allow event names with hyphens #51 (commit)
- Merge branch 'Kurlov-fix-namespace-hyphens' (commit)
- Fixed hyphens namcespace bug (commit) (thanks Aleksandr Kurlov!)
- removed py33 from tests, added py36 (commit)
- handle failed pickled.loads (commit) (thanks Eric Seidler!)
- check message type before yielding message data (commit) (thanks Eric Seidler!)
- add zmq prefix to default value for url (commit) (thanks Eric Seidler!)
- add zmq manager (commit) (thanks Eric Seidler!)
- add ZmqManager to dunder init (commit) (thanks Eric Seidler!)
Release 1.6.2 - 2017-01-03
- prevent binary attachments from getting mixed up Flask-SocketIO issue #385 (commit)
- Merge branch 'AndrewPashkin-clarify-level-of-separation-of-namespaces' (commit)
- Add mentioning of SIDs to the list of what each namespace has separate from other namespaces. (commit) (thanks Andrew Pashkin!)
Release 1.6.1 - 2016-11-26
- Added "ignore_queue" option to bypass message queue in emits (commit)
- Use a statically allocated logger by default (commit)
- Warn when message queues are used without monkey patching (commit)
- Added clarification regarding class based namespace being singletons #59 (commit)
- Fix typo Sokcet -> Socket #56 (commit) (thanks Lenno Nagel!)
Release 1.6.0 - 2016-09-25
- some improvements and optimizations to KombuManager class (commit)
- add a TTL option to Kombu queues when RabbitMQ is used (commit)
- put clients in a pre-disconnect state while their disconnect handler runs This avoids potential endless recursion. #312 (commit)
- do not disconnect an already disconnected client #312 (commit)
Release 1.5.1 - 2016-09-04
Release 1.5.0 - 2016-08-26
- add async_handlers option to server (commit)
- minor class-based namespace fixes (commit)
- minor documentation fixes (commit)
- class-based namespaces (commit)
- minor correction in the readme file example (commit)
- Update README.rst Add the code highlight to python (commit) (thanks Rodolfo Silva!)
- add explicit eventlet.wsgi import (commit)
- Handle empty argument list for callbacks #26 (commit)
Release 1.4.4 - 2016-08-05
- minor documentation improvement (commit)
- Fix race condition in handling of binary attachments #37 (commit)
- release 1.4.3 (commit)
- Do not allow event names with hyphens in them #36 (commit)
- add unit test for sleep function (commit)
Release 1.4.2 - 2016-07-12
- fix the order of triggered disconnect event #33 (commit) (thanks Hanzawa Ye!)
- Correct sio.emit() call in readme #32 (commit) (thanks winek!)
Release 1.4.1 - 2016-06-28
- pass return value of start_background_task to the caller (commit)
- a few improvements to examples (commit)
Release 1.4 - 2016-06-28
Release 1.3 - 2016-05-15
- delay start of message queue listener thread until first request comes (commit)
- Avoid KeyError when no room exists #27 (commit) (thanks Patrick Decat!)
Release 1.2 - 2016-03-21
Release v1.1 - 2016-03-06
- remove disconnected client before invoking disconnect handler (commit)
- Eliminate problematic _clean_rooms method (commit)
- handle leaving a room and entering again right after #17 (commit)
- document the need to monkey patch with eventlet and gevent (commit)
Release 1.0 - 2016-01-17
- Expand tuples to multiple arguments, but not lists (commit)
Release 0.9.2 - 2016-01-16
- silence a flak8 error on imports not at top (commit)
- Use separate read and write Kombu connections Eventlet does not like file handles to be shared among greenlets. Using an independent connection in the listening thread addresses this problem. #13 (commit)
Release 0.9.1 - 2016-01-10
- Pass result of connect handler up to engineio (commit)
Release 0.9.0 - 2016-01-10
- Add write_only argument to Kombu and Redis manager classes (commit)
- minor message queue documentation improvements (commit)
Release 0.8.2 - 2015-12-30
- correct kombu implementation of a fanout queue (commit)
Release 0.8.1 - 2015-12-14
Release 0.8.0 - 2015-12-14
- documentation updates (commit)
- do not allow callbacks outside of a server context (commit)
- message queue documentation (commit)
- pubsub unit tests (commit)
- README typo fix Important typo fix in README example code. (commit) (thanks Davis Miculis!)
- Support for callbacks across servers (commit)
- initial implementation of inter-process communication (commit)
Release 0.7.0 - 2015-11-22
- Correctly handle payloads that are empty lists or dictionaries #5 (commit)
- Added python 3.5 to the tox build (commit)
Release 0.6.1 - 2015-10-31
- support packets with empty payload given as an integer (commit)
Release 0.6.0 - 2015-10-17
Release 0.5.2 - 2015-09-22
- fixed regression introduced in latest release with ack ids (commit)
Release 0.5.1 - 2015-09-16
- Cleaned up the interface to provide a custom client manager (commit)
- Move ack functionality into BaseManager class (commit)
Release 0.5.0 - 2015-09-02
- Added a latency check example (commit)
- Fix executable bits in several files (commit)
- Added transport method to server class (commit)
- Updated example requirements (commit)
- Allow application to provide a custom JSON encoder/decoder. (commit)
Release 0.4.2 - 2015-08-23
- Improved handling of logging (commit)
- Updated example app to use gevent websocket if available (commit)
Release 0.4.1 - 2015-08-20
Release 0.4.0 - 2015-08-08
- Added support for gevent and standard threads besides eventlet (commit)
- added server disconnect support (commit)
Release 0.3.0 - 2015-07-27
- allow events to be sent from the connect handler (commit)
Release 0.2.0 - 2015-07-20