You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.6 KiB
104 lines
2.6 KiB
Metadata-Version: 2.1 |
|
Name: fastapi-socketio |
|
Version: 0.0.10 |
|
Summary: Easily integrate socket.io with your FastAPI app. |
|
Home-page: https://github.com/pyropy/fastapi-socketio |
|
Author: Srdjan Stankovic |
|
Author-email: stankovic.srdjo@gmail.com |
|
License: Apache License, Version 2.0 |
|
Project-URL: Issues, https://github.com/pyropy/fastapi-socketio/issues |
|
Project-URL: CI, https://github.com/pyropy/fastapi-socketio/actions |
|
Project-URL: Changelog, https://github.com/pyropy/fastapi-socketio/releases |
|
Platform: UNKNOWN |
|
Description-Content-Type: text/markdown |
|
Requires-Dist: fastapi (>=0.61.1) |
|
Requires-Dist: python-socketio (>=4.6.0) |
|
Provides-Extra: test |
|
Requires-Dist: pytest ; extra == 'test' |
|
|
|
# fastapi-socketio |
|
|
|
[](https://pypi.org/project/fastapi-socketio/) |
|
[](https://github.com/pyropy/fastapi-socketio/releases) |
|
[](https://github.com/pyropy/fastapi-socketio/blob/main/LICENSE) |
|
|
|
Easly integrate socket.io with your FastAPI app. |
|
|
|
## Installation |
|
|
|
Install this plugin using `pip`: |
|
|
|
$ pip install fastapi-socketio |
|
|
|
## Usage |
|
|
|
To add SocketIO support to FastAPI all you need to do is import `SocketManager` and pass it `FastAPI` object. |
|
|
|
```python |
|
# 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. |
|
```python |
|
# 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. |
|
|
|
```python |
|
# 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') |
|
|
|
``` |
|
|
|
## Development |
|
|
|
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 |
|
|
|
|
|
## Run example |
|
|
|
To run the examples simply run: |
|
|
|
```bash |
|
PYTHONPATH=. python examples/app.py |
|
``` |
|
|
|
Before running example make sure you have all dependencies installed. |
|
|
|
## Contributors |
|
|
|
For list of contributors please reefer to CONTRIBUTORS.md file in this repository. |
|
|
|
|