Migrate from Pusher

Because Vixus Push speaks the Pusher protocol, moving an existing app is mostly configuration: new credentials and a different host. Your channels, event names, authorization endpoint and client code stay as they are.

Before you start

  • Create an app in the dashboard and note its app_id, key, secret and the host.
  • Check the compatibility table for anything your app relies on, such as webhooks or encrypted channels.
  • Compare your Pusher plan with Limits and quotas: connections, messages per day and event size.

1. Point the browser at the new host

Swap the key and replace cluster with a host and port:

diff

 const pusher = new Pusher("YOUR_NEW_KEY", {
-  cluster: "eu",
+  cluster: "",
+  wsHost: "YOUR_HOST",
+  wsPort: 443,
+  wssPort: 443,
+  forceTLS: true,
+  enabledTransports: ["ws", "wss"],
   channelAuthorization: { endpoint: "/api/pusher/auth" },
 });

Your host and port are on the app's Overview page. Keep enabledTransports as shown: it stops the library from trying fallbacks that do not exist here.

2. Point your server at it

Use the new id, key and secret, and add the host:

diff

 const pusher = new Pusher({
   appId: "YOUR_NEW_APP_ID",
   key: "YOUR_NEW_KEY",
   secret: process.env.PUSHER_APP_SECRET,
-  cluster: "eu",
+  host: "YOUR_HOST",
+  port: "443",
+  useTLS: true,
 });

The authorization endpoint needs no other change: it signs with the new secret because the library is configured with it. Laravel and Echo users change the environment variables on the Laravel tab of the Quickstart.

3. Cut over safely

  1. Put the old and new credentials behind a setting, and deploy with Pusher still selected.
  2. Switch a small share of traffic, or a staging environment, to Vixus Push and watch for errors (see Errors and close codes).
  3. Switch the rest. Clients reconnect on the next page load, so old and new clients simply live on different services for a while: events published to one service are not delivered to clients on the other, so move your publishers and your clients together.

What is different

In PusherHere
Clusters (cluster: "eu")A host and port; one region
Beams push notificationsNot available
Debug console and event logNot available
Webhooks configured in the dashboardNot available in the dashboard yet
"Authorized connections only" settingNot available: protect private data with private channels
Allowed origins per appNot available
Limits by planDifferent numbers, see Limits and quotas