PushClient ships in the praisonai wrapper (pip install praisonai). Core praisonaiagents.push exports protocols and ChannelMessage only.How It Works
Quick Start
How It Works
| Component | Purpose |
|---|---|
PushClient | Auto-reconnect, transport fallback |
WebSocketTransport | Primary real-time transport |
PollingTransport | Fallback for restricted networks |
| Channels | Named pub/sub streams |
PushConfig | Opt-in gateway toggle (off by default) |
Configuration Options
PushConfig
| Option | Type | Default | Description |
|---|---|---|---|
enabled | bool | False | Feature toggle |
redis | RedisConfig | None | Cross-server scaling |
presence | PresenceConfig | PresenceConfig() | Online/offline tracking |
delivery | DeliveryConfig | DeliveryConfig() | ACK and retry settings |
polling | PollingConfig | PollingConfig() | Long-poll fallback |
DeliveryConfig
| Option | Type | Default | Description |
|---|---|---|---|
enabled | bool | True | Delivery guarantees |
ack_timeout | int | 30 | Seconds to wait for ACK |
max_retries | int | 3 | Retry attempts |
store_backend | str | "memory" | "memory" or "redis" |
Best Practices
Enable Redis for multi-server
Enable Redis for multi-server
Without Redis, channels exist on one gateway instance only.
Keep push opt-in
Keep push opt-in
PushConfig(enabled=False) adds zero overhead — enable only when clients subscribe.Use polling fallback on corporate networks
Use polling fallback on corporate networks
Set
fallback_to_polling=True on PushClient when WebSocket is blocked.Separate from A2A webhooks
Separate from A2A webhooks
Real-time channels differ from A2A task webhooks — use the right page for your pattern.
Related
Gateway
Host push channels on the gateway
A2A Push Notifications
Webhook-based task updates

