Pusher Docs Reference

Soketify implements the complete Pusher Channels protocol. Every official Pusher SDK and every feature in the Pusher documentation works here. This page maps the full Pusher docs to what we cover natively and links directly to Pusher for everything else.

100% protocol compatible

Change wsHost to ws.soketify.com and host to api.soketify.com in your SDK config. Every Pusher example in their documentation will work exactly as written.

Getting Started: SDK Quick Starts

JavaScript / BrowserCovered

Our Quick Start covers JavaScript. Use pusher-js with wsHost: "ws.soketify.com".

iOS (Swift)Pusher docs

Install pusher-websocket-swift via SPM. Replace the cluster with wsHost: "ws.soketify.com" and set useTLS: true.

Android (Kotlin / Java)Pusher docs

Install pusher-websocket-android via Gradle. Replace cluster with the Soketify WebSocket host.

FlutterPusher docs

Use pusher_channels_flutter. Pass host: "ws.soketify.com" and cluster: "default".

React NativePusher docs

Same as the JavaScript quick start; pusher-js works in React Native. Point wsHost to ws.soketify.com.

Getting Started: Use Case Quick Starts

Realtime ChartPusher docs

Fully compatible: swap the Pusher app credentials for your Soketify credentials and update wsHost.

Realtime User ListPusher docs

Uses presence channels, fully supported. See our Channels and Authentication docs.

Using Channels: Client SDK

Client API OverviewCovered

Covers pusher-js API: bind, unbind, subscribe, unsubscribe. All methods work identically.

ConnectionCovered

Fully covered: states, socket_id, error codes, disconnection.

User Authentication (pusher.signin)Pusher docs

Connection-level user auth (pusher.signin(), pusher.user). Supported by Soketi. Requires a /pusher/user-auth endpoint returning a signed token. Not the same as channel authorization.

Watchlist EventsPusher docs

Notifies you when specific users go online/offline across any connection. Requires user authentication (pusher.signin). Supported by Soketi; enable via app settings and provide a watchlist in your user-auth endpoint.

FunctionsNot supported

Pusher Functions is a serverless compute feature specific to Pusher's cloud. Not available in Soketify. Use a regular serverless function (Cloudflare Workers, Vercel, etc.) and trigger events via the REST API instead.

Authorized ConnectionsPusher docs

Connection-level authorization that locks a connection to a specific user. Implemented alongside user authentication. Supported by Soketi.

Channels (all types)Covered

All five channel types (public, private, encrypted, presence, cache) are documented here.

EventsCovered

Binding, unbinding, system events, client events, naming rules: all covered.

Global ConfigurationPusher docs

Covers pusher-js init options: activityTimeout, pongTimeout, enabledTransports, disabledTransports, authEndpoint, auth headers, etc. All options work. Key difference: set wsHost / wsPort / wssPort instead of cluster.

WebSocket FallbacksPusher docs

pusher-js can fall back to SockJS (xhr_streaming, xhr_polling) on networks that block WebSockets. In our Quick Start we set enabledTransports: ["ws", "wss"] which disables fallbacks for simplicity. Remove that option to enable them. Required for: corporate proxies, old mobile networks, HTTP-only environments.

Device CompatibilityPusher docs

See the Device Compatibility section on this page.

Server API

HTTP API InteractionCovered

Trigger events, batch trigger, list channels, channel info, presence users.

Authenticating Users (server side)Pusher docs

Server endpoint for connection-level user auth (/pusher/user-auth). Complementary to our Authentication guide which covers channel authorization.

Authorizing Users (channel auth)Covered
Sending Events to Authenticated UsersPusher docs

Server-side API to push events directly to a user_id rather than a channel name. Supported by Soketi. POST to /apps/{appId}/users/{userId}/events.

Terminating User ConnectionsPusher docs

Force-disconnect all connections for a given user_id. POST to /apps/{appId}/users/{userId}/terminate_connections. Supported by Soketi.

Excluding Event RecipientsCovered

Pass socket_id to trigger/triggerBatch to exclude the sender. Covered in the Events guide.

Channels Libraries

API Libraries (all official SDKs)Pusher docs

Every official Pusher server library works with Soketify. Pass host: "api.soketify.com" instead of using the cluster option.

Library Auth Reference

Authentication & Authorization SignaturesCovered

Deep-dive into the HMAC-SHA256 signature scheme for both channel auth and REST API auth.

HTTP API Reference (full)Covered
Pusher Channels ProtocolPusher docs

The low-level WebSocket protocol Soketify implements. Only relevant if you are building a custom client library.

Server Library Reference SpecPusher docs

What a conformant Pusher server library must implement. Useful if you are building an SDK.

LoggingPusher docs

Enable debug logging in pusher-js with Pusher.logToConsole = true. Works identically with Soketify.

Device Compatibility

Compatibility is entirely determined by pusher-js and the official native SDKs; Soketify does not change it. The same rules apply.

Web Browsers

TransportWhen usedCoverage
WebSocket (ws / wss)All modern browsers~98% of global traffic
xhr_streamingWebSocket blocked (corporate proxies)Fallback via pusher-js
xhr_pollingStreaming also blockedLast-resort fallback

Fallbacks are disabled by default in our Quick Start

The Quick Start config sets enabledTransports: ["ws", "wss"], which disables HTTP fallbacks entirely for cleaner performance. If your users are on corporate networks that block WebSockets, remove that option to let pusher-js fall back automatically.

Native Mobile

PlatformSDKTransport
iOS / macOSpusher-websocket-swiftWebSocket only
Androidpusher-websocket-androidWebSocket only
Flutterpusher_channels_flutterWebSocket only

Mobile + SSL

Always use TLS (wss://) for mobile connections. Cellular networks often run transparent proxies that break plain WebSocket connections. Soketify enforces TLS on ws.soketify.com with no additional configuration needed.

Other Environments

Any TCP-capable runtime can connect to Soketify, including Node.js servers (via pusher-js in Node mode or the pusher server library), IoT devices, Arduino, and desktop apps using WebSocket client libraries. The protocol is an open standard.

Don't see what you need?

If you are looking for a specific Pusher feature and are not sure whether Soketify supports it, email us at support@soketify.com. We are 100% Soketi-based so anything Soketi supports, Soketify supports.