Sockudo
Reference

Protocol reference

Compare Pusher-compatible Protocol V1 with Sockudo-native Protocol V2.

Sockudo exposes two protocol layers on the same server.

Protocol V1

Protocol V1 is Pusher-compatible. It preserves familiar event prefixes, channel names, subscription flows, auth response shapes, and HTTP API semantics.

Use V1 for:

  • existing pusher-js clients
  • Laravel Echo migrations
  • backend SDK compatibility
  • minimal drop-in deployments

Protocol V2

Protocol V2 is Sockudo-native and uses sockudo: system event prefixes.

Use V2 for:

  • message_id
  • serial
  • stream_id
  • connection recovery
  • subscribe-time rewind
  • delta compression
  • tag filtering
  • durable history
  • mutable messages
  • annotations
  • push-helper client workflows through backend proxies

Prefixes

Event familyV1V2
Public system eventspusher:sockudo:
Internal eventspusher_internal:sockudo_internal:
Mutable messagesnot availablesockudo:message.*
Recoverynot availablesockudo:resume_*
Rewindnot availablesockudo:rewind_complete

Channel names

ChannelPrefix
Publicnone
Privateprivate-
Presencepresence-
Encryptedprivate-encrypted-

Broadcast metadata

{
  "event": "order.updated",
  "channel": "orders",
  "data": { "id": "ord_123" },
  "message_id": "msg_01HX",
  "stream_id": "orders",
  "serial": 42,
  "extras": {
    "headers": { "tenant": "acme" },
    "tags": { "status": "packed" }
  }
}

V1 clients should not depend on V2-only fields.

Push is outside the WebSocket protocol

Push notifications are HTTP-driven. They target device registrations, channel push subscriptions, clients, or explicit recipients. A push payload may reference a realtime channel or message serial, but provider delivery is not part of WebSocket ordering.

On this page