-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Description
from fastapi_websocket_pubsub import PubSubEndpoint
from pydantic import BaseModel
from datetime import datetime
class ActivityLog(BaseModel):
channel: str
action: str
user_id: str
created: datetime
endpoint = PubSubEndpoint(
broadcaster="redis://user:password@host:port"
)
@shared_router.websocket("/pubsub")
async def websocket_rpc_endpoint(websocket: WebSocket):
await endpoint.main_loop(websocket)
@shared_router.post("/publish")
async def post_to_redis_pubsub(simple_message: ActivityLog):
await endpoint.publish(
topics=[simple_message.channel], data={"user_id": simple_message.user_id, "created": simple_message.created}
)
return {"message": "Event published"}when I run the endpoint with swagger or curl
curl -X 'POST' \
'http://localhost:7777/shared/publish' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"channel": "string",
"action": "string",
"user_id": "string",
"created": "2024-08-01T18:26:07.523Z"
}'the message is successfully sent but the channel do not change this I could see on the redis insight
Timestamp: 13:26:17 01 Aug 2024
Channel: "EventNotifier"
Message: {"notifier_id":"e07a909adf6d44dea3e9ab1df25cf1cd","topics":["string"],"data":{"user_id":"string","created":"2024-08-01T18:26:07.523000Z","channel":"string"}}Metadata
Metadata
Assignees
Labels
No labels