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

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
[![PyPI](https://img.shields.io/pypi/v/fastapi-socketio.svg)](https://pypi.org/project/fastapi-socketio/)
[![Changelog](https://img.shields.io/github/v/release/pyropy/fastapi-socketio?label=changelog)](https://github.com/pyropy/fastapi-socketio/releases)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](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.