Skip to main content

A simple but yet elegant publish/subscribe socket implementation using FastAPI Websocket.

Project description

FastAPI Pub/Sub

A simple but yet elegant publish/subscribe socket implementation using FastAPI Websocket.

Installation

pip install fastapi-pubsub

How it works

FastAPI provides an awesome implementation of Websockets. But it can be painful to configure it to work as a publish/subscribe mechanism.

FastAPI Pub/Sub implemented a BaseWebSocket that handles all client's connections under the hood. All you have to do is extend this class, overriding the method generate_object_to_send(self) with your desired logic.

from fastapi_pubsub.base import BaseWebSocket

class SimpleWebsocket(BaseWebSocket):
    async def generate_object_to_send(self):
        # any logic that you want to implement to send to connected users
        connections = self.connection_manager.get(self.websocket_id)
        return {"num_connected_clients": len(connections)}
app = FastAPI()

@app.websocket("/ws/connected_clients")
async def online_players_endpoint(websocket: WebSocket):
    ssw = SimpleWebsocket(websocket, 'connected_clients')
    await ssw.run()

A minimun example of a server/client communication can be seen here. Follow the instructions to see it working.

Contributing

Despite being full functional, this project is in a very early stage. Pull requests are very welcome!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_pubsub-0.1.6.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

fastapi_pubsub-0.1.6-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_pubsub-0.1.6.tar.gz.

File metadata

  • Download URL: fastapi_pubsub-0.1.6.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for fastapi_pubsub-0.1.6.tar.gz
Algorithm Hash digest
SHA256 c4a8aa20a26a50fa486eb979d8f99ad960e16a9ea8f266f5e49877db230c783a
MD5 9d0e81b94084e52c8fe96097f20f2898
BLAKE2b-256 57d456e8db07ba258fc44d54e1a173615d80e7649b1d365dfcd47f4c7449ff04

See more details on using hashes here.

File details

Details for the file fastapi_pubsub-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_pubsub-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 96cd00e43fa014b00c7a2c1db924e5e3c78a0cb2859f96502608463fec12b093
MD5 f178a595f5886824a001f78b2d55db43
BLAKE2b-256 b3715c9db7f314034bca676c459f1000fc62c27c9de87c60883ed98e1a20359f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page