Docs/Reference
Limits & Rules
Channel naming rules, rate limits, plan quotas, protocol errors, and unsupported features.
Limits & Rules
Socketo follows the Pusher Channels protocol standards while applying optimized multi-tenant resource limits on the Socketo Cloud platform.
Connection & Subscription Limits
| Limit | Value | Behavior When Exceeded |
|---|---|---|
| Channels per Connection | 50 channels | Subscription rejected with wire-level pusher:error (code 4300). Connection remains open. |
| Activity Timeout | 90 seconds | Server pings client after 90s of inactivity. If pong reply is not received, client reconnects. |
| Connection State Attachment | 16 KiB | Hibernated connection state maximum size. If exceeded, socket closes with code 4200. |
Rate Limits
Socketo Cloud applies edge rate limiters to protect your applications from flood attacks and excessive usage:
| Rate Limit | Threshold | Response / Error |
|---|---|---|
| New Connection Limiter | 50 connections / 10 seconds | HTTP 429 Too Many Requests |
| Channel Subscribe Limiter | 20 subscriptions / 10 seconds per socket | pusher:error (code 4301: Subscribe rate limit exceeded) |
| Client Event Limiter | 50 client events / 10 seconds per socket | pusher:error (code 4301: Client event rate limit exceeded) |
Plan & Concurrency Quotas
Concurrent WebSocket connection capacity depends on your application's subscription tier:
| Plan | Concurrent Connections | Behavior When Exceeded |
|---|---|---|
| Starter | 1,000 concurrent connections | New connections rejected with code 4004 (Application is over connection quota) |
| Indie | 3,000 concurrent connections | New connections rejected with code 4004 |
| Growth | 5,000 concurrent connections | New connections rejected with code 4004 |
Channel Name Rules
Channel names must:
- Be between 1 and 164 characters long, including the channel prefix
- Only contain:
a-z,A-Z,0-9,_,=,@,,,.,;, and- - Not contain
#; that character is reserved for internal channels
Invalid names and unsupported channel types are rejected with a wire-level pusher:error event (4009 or 4300).
Presence Channel Limits
| Limit | Value | Behavior When Exceeded |
|---|---|---|
| Members per Presence Channel | 100 unique user IDs | Rejected with 4300 (Presence member limit reached) |
| Presence User ID Length | 128 characters | Rejected with 4300 (Presence user ID limit exceeded) |
| Presence User Object Size | 1 KiB (1024 bytes) | Rejected with 4300 (Presence user object limit exceeded) |
Event & Payload Limits
- Event Data Payload: Server-triggered event data may be up to 10 KiB (10,240 bytes).
- Multi-Channel Target: A single event trigger may target up to 100 channels simultaneously.
- Batch Event Requests: A single batch request may contain up to 10 events.
Unsupported Features
The following Pusher features are currently not supported:
| Feature | Status |
|---|---|
| Watchlist events | Not supported |
| Encrypted channels | Not supported |
| Cache channels | Not supported |
| Webhooks | Not supported |
Error Codes Reference
HTTP Errors
| Code | Meaning |
|---|---|
400 | Invalid request payload or missing WebSocket upgrade header |
401 | Unauthorized REST request (invalid HMAC signature or timestamp expired) |
404 | HTTP route or requested channel not found |
429 | Connection rate limit exceeded |
Connection Rejections (WebSocket Close Codes)
| Code | Meaning |
|---|---|
4000 | Application requires SSL |
4001 | Application does not exist |
4003 | Application disabled |
4004 | Application is over connection quota |
4005 | Path not found |
4006 | Invalid version string format |
4007 | Unsupported protocol version (expected 7) |
4008 | No protocol version supplied |
4009 | Connection is unauthorized |
4100 | Over capacity; reconnect after backing off |
4200 | Generic reconnect immediately |
4201 | Pong reply not received |
4202 | Closed after prolonged inactivity |
Error Events (pusher:error)
| Code | Meaning |
|---|---|
4009 | Channel authentication failed or invalid auth payload |
4300 | Protocol limit exceeded (e.g. channel name, presence size, 50 channels/socket limit) |
4301 | Rate limit exceeded (subscription or client event flood) |