Why switch
Realtime code spreads across the browser, mobile clients, backend publishers and private-channel auth endpoints. Replacing every client library is expensive and risky. MOJAQ takes the compatibility route: keep the Pusher protocol and the libraries you already use, then point them at an EU host.
Realtime messages often include account IDs, document names, chat text, presence metadata and order or deployment state. MOJAQ terminates those connections in the EU and handles data in Helsinki, with a DPA included and no US transfers, and it is free during the open beta with no fixed end date.
Step by step
- Create a realtime app in MOJAQ and copy the key, secret and realtime host. Keep your Pusher app available until you have tested every flow.
- Swap the browser client key and host. The Pusher client library stays the same.Browser client
// Before: new Pusher("PUSHER_KEY", { cluster: "us2", forceTLS: true }) const pusher = new Pusher("MOJAQ_APP_KEY", { wsHost: "realtime.mojaq.com", wssPort: 443, forceTLS: true, enabledTransports: ["ws", "wss"], }); - Keep public, private and presence channels as they are. Channel names, event names and payloads do not change because the endpoint did. Private channels still hit your existing auth endpoint.Channels are unchanged
const ch = pusher.subscribe("private-orders.123"); ch.bind("order.updated", (e) => render(e)); - Update server-side publishing credentials to the MOJAQ app and host, then trigger a known event and confirm connected clients receive it.Server publisher
const pusher = new PusherServer({ appId: "MOJAQ_APP_ID", key: "MOJAQ_APP_KEY", secret: "MOJAQ_SECRET", host: "realtime.mojaq.com", port: "443", scheme: "https", });
What carries over
Carries over: Pusher client libraries, public, private and presence channels, event binding, socket IDs, your auth-endpoint pattern and Pusher-style server publishing. What changes: credentials, host or cluster settings, and network termination, which now happens in the EU from Helsinki instead of crossing to the US.
Questions
Do I need to replace pusher-js?
No. MOJAQ speaks the Pusher protocol, so the Pusher client libraries stay in place.
Do private and presence channels work the same?
Yes. Keep the same channel types and auth endpoint, signed with your MOJAQ app credentials.
Is realtime free during the beta?
Yes, including Pusher-compatible realtime apps, with no fixed end date.
