Skip to content
Docs/Migration Guide
Docs/Getting Started

Migration Guide

Pusher Channels to Socketo migration reference.

Compatibility Guarantee

Socketo implements the Pusher Channels Protocol v7 specification. Existing client applications (pusher-js, Laravel Echo, mobile SDKs) and server broadcasting drivers require zero code changes—only connection host and port settings are updated.

Environment Variable Mapping

VariablePusher DefaultSocketo CloudSocketo Local CLI
App KeyPUSHER_APP_KEYapp_... (app.id)local
App SecretPUSHER_APP_SECRETsecret_...local
App IDPUSHER_APP_IDapp_... (matches Key)local
WS Hostws-{cluster}.pusher.comwss.socketo.devlocalhost
WS Port4434438787
REST Hostapi-{cluster}.pusher.comapi.socketo.devlocalhost
REST Port4434438787
Clustere.g. eu, us2socketolocal
TLS / SSLtruetruefalse

Client Configuration Diff

diff
- const pusher = new Pusher(process.env.PUSHER_KEY, {
-   cluster: 'eu',
- })
+ const pusher = new Pusher(process.env.SOCKETO_APP_KEY, {
+   wsHost: 'wss.socketo.dev',
+   wssPort: 443,
+   forceTLS: true,
+   cluster: 'socketo',
+   enabledTransports: ['ws'],
+ })

Backend Configuration Diff

diff
- const pusher = new Pusher({
-   appId: process.env.PUSHER_APP_ID,
-   key: process.env.PUSHER_KEY,
-   secret: process.env.PUSHER_SECRET,
-   cluster: 'eu',
-   useTLS: true,
- })
+ const pusher = new Pusher({
+   appId: process.env.SOCKETO_APP_KEY,
+   key: process.env.SOCKETO_APP_KEY,
+   secret: process.env.SOCKETO_APP_SECRET,
+   host: 'api.socketo.dev',
+   useTLS: true,
+ })

Feature Support Checklist

FeatureSupportedNotes
Public ChannelsYesFully supported
Private ChannelsYesStandard HMAC-SHA256 authorization
Presence ChannelsYesUp to 100 concurrent members per channel
Client Events (client-*)YesRate limited to 50 events / 10s per socket
Server Event TriggersYesSingle and multi-channel (trigger)
Batch Event TriggersYesUp to 10 events per batch (triggerBatch)
User Sign-in (pusher:signin)Yes#server-to-user-<id> routing
Direct User Events (sendToUser)YesDelivered to pusher.user.bind()
User Connection TerminationYesPOST /apps/:id/users/:id/terminate_connections
Outbound WebhooksYesOccupancy, presence roster, and client events
Encrypted Channels (private-encrypted-*)NoEnd-to-end TweetNaCl encryption not implemented
Cache Channels (cache-*)NoChannel join message caching not implemented
Watchlist Events (pusher:watchlist)NoUser presence monitoring outside channels not implemented