Easly integrate socket.io with your FastAPI app.
Install this plugin using pip
:
$ pip install fastapi-socketio
To add SocketIO support to FastAPI all you need to do is import SocketManager
and pass it FastAPI
object.
# app.py from fastapi import FastAPI from fastapi_socketio import SocketManager app = FastAPI() socket_manager = SocketManager(app=app)
Now you can use SocketIO directly from your FastAPI
app object.
# socket_handlers.py from .app import app @app.sio.on('join') async def handle_join(sid, *args, **kwargs): await app.sio.emit('lobby', 'User joined')
Or you can import SocketManager
object that exposes most of the SocketIO functionality.
# socket_handlers2.py from .app import socket_manager as sm @sm.on('leave') async def handle_leave(sid, *args, **kwargs): await sm.emit('lobby', 'User left')
To contribute to this library, first checkout the code. Then create a new virtual environment:
cd fastapi-socketio
python -mvenv venv
source venv/bin/activate
Or if you are using pipenv
:
pipenv shell
Now install the dependencies and tests:
pip install -e '.[test]'
To run the tests:
pytest
To run the examples simply run:
PYTHONPATH=. python examples/app.py
Before running example make sure you have all dependencies installed.
For list of contributors please reefer to CONTRIBUTORS.md file in this repository.