WebSocket Service API
API reference for real-time communication using WebSockets
The WebSocket Service provides endpoints for establishing persistent connections between clients and the server, enabling real-time, bidirectional communication. This service is used for features that require instant updates and notifications.
Authentication
WebSocket connections require authentication via a valid JWT token provided as a query parameter.
Base URL
WebSocket Endpoints
Establish Connection
Create a persistent WebSocket connection.
When using HTTPS, use the wss://
protocol instead:
Query Parameters:
Parameter | Required | Description |
---|---|---|
token | Yes | Valid JWT token for authentication |
Message Format
Messages exchanged over the WebSocket connection are JSON-formatted with the following structure:
Client-to-Server Messages
Server-to-Client Messages
Message Types
Events
The WebSocket service broadcasts various events to connected clients:
Event Type | Description | Example Data |
---|---|---|
notification | System notification | {"message": "New comment on your post", "level": "info"} |
chat_message | New chat message | {"conversation_id": "conv-123", "sender_id": "user-456", "content": "Hello there!"} |
status_update | Status change | {"entity_type": "task", "entity_id": "task-789", "status": "completed"} |
Commands
Clients can send commands to the server:
Command Type | Description | Example Data |
---|---|---|
subscribe | Subscribe to a specific channel | {"channel": "conversation:conv-123"} |
unsubscribe | Unsubscribe from a channel | {"channel": "conversation:conv-123"} |
ping | Check connection | {} |
Error Handling
The server may send error messages in the following format:
Common error codes:
Error Code | Description |
---|---|
invalid_request | The message format is invalid |
unauthorized | Authentication failed or insufficient permissions |
subscription_failed | Failed to subscribe to the requested channel |
internal_error | Server-side error |
Connection Example
JavaScript Client Example
Reconnection Strategy
It’s recommended to implement a reconnection strategy in your client application to handle unexpected disconnections:
- Start with a small delay (e.g., 1 second)
- Use exponential backoff with jitter to increase the delay between reconnection attempts
- Set a maximum retry limit or maximum delay
- Reset the delay when a successful connection is established
Security Considerations
- WebSocket connections are authenticated using JWT tokens
- Tokens should be kept secret and not shared
- Connections will be terminated when tokens expire
- The server may implement rate limiting to prevent abuse
Implementation Notes
- The WebSocket service uses the standard WebSocket protocol (RFC 6455)
- Messages are exchanged in JSON format
- The service supports multiple concurrent connections
- Channel subscriptions allow for efficient message filtering
- Clients should handle reconnection logic on their side
Was this page helpful?