Docs/Limits & Rules
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

LimitValueBehavior When Exceeded
Channels per Connection50 channelsSubscription rejected with wire-level pusher:error (code 4300). Connection remains open.
Activity Timeout90 secondsServer pings client after 90s of inactivity. If pong reply is not received, client reconnects.
Connection State Attachment16 KiBHibernated 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 LimitThresholdResponse / Error
New Connection Limiter50 connections / 10 secondsHTTP 429 Too Many Requests
Channel Subscribe Limiter20 subscriptions / 10 seconds per socketpusher:error (code 4301: Subscribe rate limit exceeded)
Client Event Limiter50 client events / 10 seconds per socketpusher:error (code 4301: Client event rate limit exceeded)

Plan & Concurrency Quotas

Concurrent WebSocket connection capacity depends on your application's subscription tier:

PlanConcurrent ConnectionsBehavior When Exceeded
Starter1,000 concurrent connectionsNew connections rejected with code 4004 (Application is over connection quota)
Indie3,000 concurrent connectionsNew connections rejected with code 4004
Growth5,000 concurrent connectionsNew 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

LimitValueBehavior When Exceeded
Members per Presence Channel100 unique user IDsRejected with 4300 (Presence member limit reached)
Presence User ID Length128 charactersRejected with 4300 (Presence user ID limit exceeded)
Presence User Object Size1 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:

FeatureStatus
Watchlist eventsNot supported
Encrypted channelsNot supported
Cache channelsNot supported
WebhooksNot supported

Error Codes Reference

HTTP Errors

CodeMeaning
400Invalid request payload or missing WebSocket upgrade header
401Unauthorized REST request (invalid HMAC signature or timestamp expired)
404HTTP route or requested channel not found
429Connection rate limit exceeded

Connection Rejections (WebSocket Close Codes)

CodeMeaning
4000Application requires SSL
4001Application does not exist
4003Application disabled
4004Application is over connection quota
4005Path not found
4006Invalid version string format
4007Unsupported protocol version (expected 7)
4008No protocol version supplied
4009Connection is unauthorized
4100Over capacity; reconnect after backing off
4200Generic reconnect immediately
4201Pong reply not received
4202Closed after prolonged inactivity

Error Events (pusher:error)

CodeMeaning
4009Channel authentication failed or invalid auth payload
4300Protocol limit exceeded (e.g. channel name, presence size, 50 channels/socket limit)
4301Rate limit exceeded (subscription or client event flood)