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.