Pusher Protocol Support

AnyCable supports Pusher protocol meaning that it can be used as a drop-in replacement for Pusher (or another Pusher-speaking WebSocket server).

Configuration

To enable Pusher compatibility mode, you must specify the following parameters:

$ anycable-go --pusher_app_id=my-test-id --pusher_app_key=my-app-key --pusher_secret=push-secret

...
2025-07-25 01:01:22.826 INF Handle Pusher WebSocket connections at http://localhost:8080/app/my-app-key nodeid=7PKs0u
2025-07-25 01:01:22.826 INF Handle Pusher events s at http://localhost:8080/apps/my-test-id/events nodeid=7PKs0u

In the logs, you will see the Pusher WebSocket and HTTP endpoints (see the example above).

Configure Pusher client library and a server-side SDKs accordingly.

Compatibility

AnyCable doesn't aim to provide 100% compatibility with the current or future Pusher version. The primary purpose of this compatibility layer is to allow applications to gradually switch from Pusher (or its alternative) to AnyCable protocol and benefit from the features provided by it (such as reliable streams aka streams history).

Below you can find the list of support (and not) features:

Feature Support Status Notes
Public channels
Private channels
Client events
Presence channels
Authentication (pusher:signin) What is if for?
Watchlist Events Not planned
Webhooks Not planned yet
POST /events
POST /batch_events ⚙️ Can be added if needed
HTTP API Not planned yet
Encrypted channels