Cluster Configuration

A "cluster" represents the physical location of the servers that handle requests from your Channels app. For example, the Channels cluster mt1 is in Northern Virginia in the United States. When you create a Channels app, you can choose which cluster it exists in. You might choose this to achieve lower latency or to comply with data protection regulations.

What clusters exist?

Channels has the following public clusters:

  • mt1 in N. Virginia
  • us2 in Ohio
  • us3 in Oregon
  • eu in Ireland
  • ap1 in Singapore
  • ap2 in Mumbai
  • ap3 in Tokyo
  • ap4 in Sydney

If you require other locations, we can create dedicated Channels clusters in custom locations on request: talk to us.

How should I choose a cluster?

  • To achieve lower network latency.
    • Depending on your use case, having your Channels app hosted close to its customers or your servers may help improve the latency when sending and receiving messages.
    • We recommend that you test on multiple clusters and pick the one that works best for your app.
  • To comply with data protection regulations.
    • European data protection regulations specify that personal user data should not leave the EU borders.
    • For this use-case, Channels offers a cluster in eu-west-1, an AWS datacenter located in Ireland.

How do you configure the cluster option?

Where it says APP_CLUSTER you'll need to insert the relevant cluster shortcode (e.g. mt1).

On the client-side:

  • JavaScript
  • Swift
  • Objective-C (PusherSwift)
  • Objective-C (libPusher)
  • Java
  • Laravel Echo
  • .NET
var pusher = new Pusher("APP_KEY", {
  cluster: "APP_CLUSTER"

On the server-side:

  • Ruby
  • PHP
  • Laravel
  • Node.js
  • Python
  • Go
  • Java
require 'pusher'

pusher =
  app_id: 'APP_ID',
  key: 'APP_KEY',
  secret: 'APP_SECRET',
  cluster: 'APP_CLUSTER'


  • Setting the cluster option will change the host parameter of the Channels library you are using. This happens only when the host option is not set, in which case, cluster is ignored.
  • For client libraries, the default host is (and for fallback transports). With cluster set, the host becomes (and respectively).
  • For server libraries, the default host is With cluster set, the host becomes

How to debug it?

  • First make sure your app is created in the intended cluster and that all the Channels libraries you are using in your project are configured correctly.
  • Make sure your app makes requests to the correct endpoints. On the server-side, use a traffic sniffing tool like tcpdump. On the client-side, open your browser's developer tools and inspect the network requests.
  • Contact support