Changelog
### 5.0.3
```
- Document the use of simple-websocket with the development web server ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/6a2463cc21e56dfac27f63832d2510a3e1467634))
- Show transport in example apps ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/044e9c066c53c865abb1eee0e81c90a0c7022b7e))
- Added Open Collective funding option ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/ab99680cefba577b06b19227480511ad6508a1d4))
```
### 5.0.2
```
- Silence deprecation warning from Werkzeug 2.x [1549](https://github.com/miguelgrinberg/flask-socketio/issues/1549) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/6563634e4c7836479ff5d38d20f4339e6bcf92ab))
- Updated server options in documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/6bcd1dc29d1dde4f61e582fc62f4bb752008615e))
- Updated socketio javascript client versions in documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/c527c90cbe2b6f141ca94ec75964af5d0e304ab7))
- Fix typo in documentation [1524](https://github.com/miguelgrinberg/flask-socketio/issues/1524) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/2f1c322e687a8f7f080a081f042efdc6c8532123)) (thanks **lennertcl**!)
- Change room documentation from room= to to= [1519](https://github.com/miguelgrinberg/flask-socketio/issues/1519) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/b33cab093c85d4888093a9c2992eb8a815695b4d)) (thanks **David McInnis**!)
- Fixed a type in the Kafka URL in the documentation [1476](https://github.com/miguelgrinberg/flask-socketio/issues/1476) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/a222638186f57980a08d2d4e98624dd27c1e2bd3)) (thanks **VVakko**!)
- Fixed typos in documentation [1447](https://github.com/miguelgrinberg/flask-socketio/issues/1447) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/3f7ef81fee05be6b674521bd5850676bb2021897))
```
### 5.0.1
```
- Fix handling of argument [1441](https://github.com/miguelgrinberg/flask-socketio/issues/1441) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4ec274831551a3141a5838d9fd4c5e983f637a3a))
- Add python-engineio to version compatibility table ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/2934b469da80c1f5df9f560f06cf11e61dd2f1bd))
- Test client: pass packets through an encode/decode cycle [1427](https://github.com/miguelgrinberg/flask-socketio/issues/1427) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/ffe66fee0e72737aa974337a3ceaab4553ab3325))
```
### 5.0.0
```
- Move to python-socketio 5.x and the 3.x JavaScript releases ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/0c674b89c094f1085ad05fd7b6d2c304b9cf5791))
- Also see [python-socketio change log](https://github.com/miguelgrinberg/python-socketio/blob/master/CHANGES.md)
- Also see [python-engineio change log](https://github.com/miguelgrinberg/python-engineio/blob/master/CHANGES.md)
- add socketio.event convenience decorator ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/62717a852983bbf5d89d9b8f898282712c9bbf24))
- Rename `room` argument to `to` ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4c69c9a807a94120c4a07274e29ef9b9a41bfb86))
- Documentation updates ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/e864441e7ac7263d77e9a2e18863ebc22dcbf6ec)) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/c91244a30e77104c6df827b55f9dfad8ae9c7788))
```
### 4.3.2
```
- Only use python-socketio 4.x versions as dependencies for now ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/59740d3eb50395f44cfb786b85215b4ec9b795e9))
- Added troubleshooting section to the documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/27b148b6b614c916f2b3417e6d160a6456335e66))
- Fixed incorrect use of `has_request_context` [1324](https://github.com/miguelgrinberg/flask-socketio/issues/1324): [#1325](https://github.com/miguelgrinberg/flask-socketio/issues/1325) - Added proper call to has_request_context function Co-authored-by: igor_kantorski <igor.kantorskiglobedata.pl> ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/9a53243eae1a1289f670ce8f8941e9867a9de531)) (thanks **igoras1993**!)
- Move builds to GitHub actions ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/46cfcbf61fe63e8243cfb0db1b6273356d419f47))
```
### 4.3.1
```
- fix is_connected in test client ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/0d2f041dc0e7cd976860c2d2c9fb163bd20f5460))
```
### 4.3.0
```
- Handle callbacks for emits outside of request context [1054](https://github.com/miguelgrinberg/flask-socketio/issues/1054) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/1bd15e05b75aaf94dacd4f24af44601b76d300a9))
- Improve test client unit test to use two concurrent clients ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/2c6b07d0419f2b6e03554c32e42a91cf963c6d6d))
- Accept skip_sid argument in emit[1147](https://github.com/miguelgrinberg/flask-socketio/issues/1147) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/c06e78e78de3d10f9009bf778ad188bf3f4945ed))
- Fix is_connected() method in test client (Fixes https://github.com/miguelgrinberg/python-socketio/issues/385) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/a05ff51344654aef00b8dc0fce8028500d380b05))
- Log warning when gevent is used but WebSocket is missing [1140](https://github.com/miguelgrinberg/flask-socketio/issues/1140) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/15ad45a6b90362bc1b73b6a7b0fa6781c6b98b05)) (thanks **Eric Rodrigues Pires**!)
- More accurate logging documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/255d3d6b41b4f22736d2798a8f70264334eb3173))
```
### 4.2.1
```
- Add support for Apache Kafka message queue [700](https://github.com/miguelgrinberg/flask-socketio/issues/700) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/f20268a3ec14af3e8d6681c2ffd01e299dc4f6df)) (thanks **Vincent Mézino**!)
- Update CORS documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/d9cd34a86dedf96ca5232cf981b54b4c1c6e362d))
```
### 4.2.0
```
- Address potential websocket cross-origin attacks [128](https://github.com/miguelgrinberg/python-engineio/issues/128) ([commit](https://github.com/miguelgrinberg/python-engineio/commit/7548f704a0a3000b7ac8a6c88796c4ae58aa9c37))
- Documentation for the Same Origin security policy ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/42d4e02055f5936f1322982bf44a845987d75144))
```
### 4.1.1
```
- Fix typo in "Using nginx" section [1007](https://github.com/miguelgrinberg/flask-socketio/issues/1007) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/9e152b24ec30dd712886c4da3ec6a3aded855a00)) (thanks **Steffen Schneider**!)
- updated python-socketio min version requirement to 4.0.0 [1006](https://github.com/miguelgrinberg/flask-socketio/issues/1006) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/40a34c119a6b7f7e00d2a476d26e985cbd10ec19)) (thanks **Shantanu Hazari**!)
```
### 4.1.0
```
- Add ConnectionRefusedError exception from python-socketio [989](https://github.com/miguelgrinberg/flask-socketio/issues/989) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/3f9fda8f0de551567834400ff72a95c10c7d42b4))
- Invoke Socket.IO callbacks with app and request context [262](https://github.com/miguelgrinberg/flask-socketio/issues/262) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/75a75d47cb20fca8a8b2b2818a7602d43b4cea1f))
- Copy handler's name and docstring to handler wrapper [573](https://github.com/miguelgrinberg/flask-socketio/issues/573) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4e0329b59e653edc19b31f05823b47bd63c0bc72))
- Less aggressive monkey patching for gevent [413](https://github.com/miguelgrinberg/flask-socketio/issues/413) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/55d02d97708bd91b7d8f761ab57aba8d946039ff))
- Updates jquery and socket.io in example application [988](https://github.com/miguelgrinberg/flask-socketio/issues/988) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/67da0d6627149c27da4ddc9b675aacf946dc3588)) (thanks **sillyfrog**!)
```
### 4.0.0
```
- move to the latest python-socketio 4.x releases ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/686abcaf69c27f6fb6084d0948832ffff8177755))
- SocketIOTestClient can handle disconnect event from server [967](https://github.com/miguelgrinberg/flask-socketio/issues/967) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/611fa68e102b7b49ac77d48406a034f23aca4998)) (thanks **Jack**!)
- example app: disconnect in callback function [453](https://github.com/miguelgrinberg/flask-socketio/issues/453) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/f8ee01f938afcd13d4cae282976946660db8e982))
- update documentation for skip_sid argument supporting lists ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/932b0296afea789f51c0b7f39f99a561593fb257))
- add /static block to nginx configuration example [222](https://github.com/miguelgrinberg/flask-socketio/issues/222) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/e052ae6d7b865929bfb7dca4b936902d204ccdb6))
- add notes on monkey patching [383](https://github.com/miguelgrinberg/flask-socketio/issues/383) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/5dd2bca681cc826fa60558ec244633437bfebaf4))
- note the event names that are reserved in the documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/0c9d1b32499ca5091cf04833c32f3ade803be6e7))
- minor doc improvements [960](https://github.com/miguelgrinberg/flask-socketio/issues/960) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/a0c29a94b1d53306550e8c5ffc4fcb71f6fb20b7))
- updated some requirements ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4bef800d5e7ba7d98a6f4cd94191ff0b4496c334))
- add link to stack overflow for questions ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/db46f062b2d13c7c464f625d5e1976d9625a0f37))
- helper release script ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/1fd43a3fc86be8848fc6d70d80638db688f4eb97))
```
Links
- PyPI: https://pypi.org/project/flask-socketio
- Changelog: https://pyup.io/changelogs/flask-socketio/
- Repo: http://github.com/miguelgrinberg/Flask-SocketIO/
- Docs: https://pythonhosted.org/Flask-SocketIO/
This PR updates Flask-SocketIO from 3.3.2 to 5.0.3.
Changelog
### 5.0.3 ``` - Document the use of simple-websocket with the development web server ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/6a2463cc21e56dfac27f63832d2510a3e1467634)) - Show transport in example apps ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/044e9c066c53c865abb1eee0e81c90a0c7022b7e)) - Added Open Collective funding option ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/ab99680cefba577b06b19227480511ad6508a1d4)) ``` ### 5.0.2 ``` - Silence deprecation warning from Werkzeug 2.x [1549](https://github.com/miguelgrinberg/flask-socketio/issues/1549) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/6563634e4c7836479ff5d38d20f4339e6bcf92ab)) - Updated server options in documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/6bcd1dc29d1dde4f61e582fc62f4bb752008615e)) - Updated socketio javascript client versions in documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/c527c90cbe2b6f141ca94ec75964af5d0e304ab7)) - Fix typo in documentation [1524](https://github.com/miguelgrinberg/flask-socketio/issues/1524) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/2f1c322e687a8f7f080a081f042efdc6c8532123)) (thanks **lennertcl**!) - Change room documentation from room= to to= [1519](https://github.com/miguelgrinberg/flask-socketio/issues/1519) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/b33cab093c85d4888093a9c2992eb8a815695b4d)) (thanks **David McInnis**!) - Fixed a type in the Kafka URL in the documentation [1476](https://github.com/miguelgrinberg/flask-socketio/issues/1476) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/a222638186f57980a08d2d4e98624dd27c1e2bd3)) (thanks **VVakko**!) - Fixed typos in documentation [1447](https://github.com/miguelgrinberg/flask-socketio/issues/1447) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/3f7ef81fee05be6b674521bd5850676bb2021897)) ``` ### 5.0.1 ``` - Fix handling of argument [1441](https://github.com/miguelgrinberg/flask-socketio/issues/1441) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4ec274831551a3141a5838d9fd4c5e983f637a3a)) - Add python-engineio to version compatibility table ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/2934b469da80c1f5df9f560f06cf11e61dd2f1bd)) - Test client: pass packets through an encode/decode cycle [1427](https://github.com/miguelgrinberg/flask-socketio/issues/1427) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/ffe66fee0e72737aa974337a3ceaab4553ab3325)) ``` ### 5.0.0 ``` - Move to python-socketio 5.x and the 3.x JavaScript releases ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/0c674b89c094f1085ad05fd7b6d2c304b9cf5791)) - Also see [python-socketio change log](https://github.com/miguelgrinberg/python-socketio/blob/master/CHANGES.md) - Also see [python-engineio change log](https://github.com/miguelgrinberg/python-engineio/blob/master/CHANGES.md) - add socketio.event convenience decorator ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/62717a852983bbf5d89d9b8f898282712c9bbf24)) - Rename `room` argument to `to` ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4c69c9a807a94120c4a07274e29ef9b9a41bfb86)) - Documentation updates ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/e864441e7ac7263d77e9a2e18863ebc22dcbf6ec)) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/c91244a30e77104c6df827b55f9dfad8ae9c7788)) ``` ### 4.3.2 ``` - Only use python-socketio 4.x versions as dependencies for now ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/59740d3eb50395f44cfb786b85215b4ec9b795e9)) - Added troubleshooting section to the documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/27b148b6b614c916f2b3417e6d160a6456335e66)) - Fixed incorrect use of `has_request_context` [1324](https://github.com/miguelgrinberg/flask-socketio/issues/1324): [#1325](https://github.com/miguelgrinberg/flask-socketio/issues/1325) - Added proper call to has_request_context function Co-authored-by: igor_kantorski <igor.kantorskiglobedata.pl> ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/9a53243eae1a1289f670ce8f8941e9867a9de531)) (thanks **igoras1993**!) - Move builds to GitHub actions ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/46cfcbf61fe63e8243cfb0db1b6273356d419f47)) ``` ### 4.3.1 ``` - fix is_connected in test client ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/0d2f041dc0e7cd976860c2d2c9fb163bd20f5460)) ``` ### 4.3.0 ``` - Handle callbacks for emits outside of request context [1054](https://github.com/miguelgrinberg/flask-socketio/issues/1054) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/1bd15e05b75aaf94dacd4f24af44601b76d300a9)) - Improve test client unit test to use two concurrent clients ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/2c6b07d0419f2b6e03554c32e42a91cf963c6d6d)) - Accept skip_sid argument in emit[1147](https://github.com/miguelgrinberg/flask-socketio/issues/1147) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/c06e78e78de3d10f9009bf778ad188bf3f4945ed)) - Fix is_connected() method in test client (Fixes https://github.com/miguelgrinberg/python-socketio/issues/385) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/a05ff51344654aef00b8dc0fce8028500d380b05)) - Log warning when gevent is used but WebSocket is missing [1140](https://github.com/miguelgrinberg/flask-socketio/issues/1140) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/15ad45a6b90362bc1b73b6a7b0fa6781c6b98b05)) (thanks **Eric Rodrigues Pires**!) - More accurate logging documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/255d3d6b41b4f22736d2798a8f70264334eb3173)) ``` ### 4.2.1 ``` - Add support for Apache Kafka message queue [700](https://github.com/miguelgrinberg/flask-socketio/issues/700) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/f20268a3ec14af3e8d6681c2ffd01e299dc4f6df)) (thanks **Vincent Mézino**!) - Update CORS documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/d9cd34a86dedf96ca5232cf981b54b4c1c6e362d)) ``` ### 4.2.0 ``` - Address potential websocket cross-origin attacks [128](https://github.com/miguelgrinberg/python-engineio/issues/128) ([commit](https://github.com/miguelgrinberg/python-engineio/commit/7548f704a0a3000b7ac8a6c88796c4ae58aa9c37)) - Documentation for the Same Origin security policy ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/42d4e02055f5936f1322982bf44a845987d75144)) ``` ### 4.1.1 ``` - Fix typo in "Using nginx" section [1007](https://github.com/miguelgrinberg/flask-socketio/issues/1007) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/9e152b24ec30dd712886c4da3ec6a3aded855a00)) (thanks **Steffen Schneider**!) - updated python-socketio min version requirement to 4.0.0 [1006](https://github.com/miguelgrinberg/flask-socketio/issues/1006) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/40a34c119a6b7f7e00d2a476d26e985cbd10ec19)) (thanks **Shantanu Hazari**!) ``` ### 4.1.0 ``` - Add ConnectionRefusedError exception from python-socketio [989](https://github.com/miguelgrinberg/flask-socketio/issues/989) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/3f9fda8f0de551567834400ff72a95c10c7d42b4)) - Invoke Socket.IO callbacks with app and request context [262](https://github.com/miguelgrinberg/flask-socketio/issues/262) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/75a75d47cb20fca8a8b2b2818a7602d43b4cea1f)) - Copy handler's name and docstring to handler wrapper [573](https://github.com/miguelgrinberg/flask-socketio/issues/573) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4e0329b59e653edc19b31f05823b47bd63c0bc72)) - Less aggressive monkey patching for gevent [413](https://github.com/miguelgrinberg/flask-socketio/issues/413) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/55d02d97708bd91b7d8f761ab57aba8d946039ff)) - Updates jquery and socket.io in example application [988](https://github.com/miguelgrinberg/flask-socketio/issues/988) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/67da0d6627149c27da4ddc9b675aacf946dc3588)) (thanks **sillyfrog**!) ``` ### 4.0.0 ``` - move to the latest python-socketio 4.x releases ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/686abcaf69c27f6fb6084d0948832ffff8177755)) - SocketIOTestClient can handle disconnect event from server [967](https://github.com/miguelgrinberg/flask-socketio/issues/967) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/611fa68e102b7b49ac77d48406a034f23aca4998)) (thanks **Jack**!) - example app: disconnect in callback function [453](https://github.com/miguelgrinberg/flask-socketio/issues/453) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/f8ee01f938afcd13d4cae282976946660db8e982)) - update documentation for skip_sid argument supporting lists ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/932b0296afea789f51c0b7f39f99a561593fb257)) - add /static block to nginx configuration example [222](https://github.com/miguelgrinberg/flask-socketio/issues/222) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/e052ae6d7b865929bfb7dca4b936902d204ccdb6)) - add notes on monkey patching [383](https://github.com/miguelgrinberg/flask-socketio/issues/383) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/5dd2bca681cc826fa60558ec244633437bfebaf4)) - note the event names that are reserved in the documentation ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/0c9d1b32499ca5091cf04833c32f3ade803be6e7)) - minor doc improvements [960](https://github.com/miguelgrinberg/flask-socketio/issues/960) ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/a0c29a94b1d53306550e8c5ffc4fcb71f6fb20b7)) - updated some requirements ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/4bef800d5e7ba7d98a6f4cd94191ff0b4496c334)) - add link to stack overflow for questions ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/db46f062b2d13c7c464f625d5e1976d9625a0f37)) - helper release script ([commit](https://github.com/miguelgrinberg/flask-socketio/commit/1fd43a3fc86be8848fc6d70d80638db688f4eb97)) ```Links
- PyPI: https://pypi.org/project/flask-socketio - Changelog: https://pyup.io/changelogs/flask-socketio/ - Repo: http://github.com/miguelgrinberg/Flask-SocketIO/ - Docs: https://pythonhosted.org/Flask-SocketIO/