Vixus Push
Du kommst von Pusher? Es ist nur eine Konfigurationsänderung

Echtzeit, ohne eigene Server zu betreiben.

Channels, Presence und Client-Events über das Pusher-Protokoll. Behalte pusher-js und deine Server-Bibliothek, richte sie auf Vixus Push aus und steck deine Zeit in das Feature statt in eine WebSocket-Flotte.

$ npm install pusher-js
Free-Tarif ohne Kreditkarte Jedes Pusher-SDK Basiert auf Open-Source-Soketi
Funktioniert mit den Pusher-Bibliotheken, die du schon nutzt
pusher-jsLaravel EchoNode.jsPHPPythonRubyGoJava.NETiOSAndroid

// funktionen

Alles, was dein Echtzeit-Feature braucht. Ohne Babysitting.

Das Pusher-Protokoll, das du kennst, auf Infrastruktur, die du nicht selbst betreiben musst. App erstellen, drei Werte kopieren, ausliefern.

Pusher-kompatibel, ohne Umbau

Behalte pusher-js, Laravel Echo und jede Pusher-Server-Bibliothek. Tausch den Cluster gegen einen Host, und Channel-Namen, Events und dein Auth-Endpoint bleiben genau, wie sie sind.

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

Public, Private und Presence

Sende an alle, schütze Channels mit deinem eigenen Auth-Endpoint oder sieh, wer gerade online ist.

presence-doc-913 online
Amara Okaforbearbeitet
Jonas Bergliest
Mei Chenneu dabei
pusher:member_added { id: "mei" }

Client-Events

Tippanzeigen und Cursor gehen auf Private- und Presence-Channels direkt von Client zu Client. Ein Schalter pro App.

Ada tipptchannel.trigger("client-typing", …)

Eine echte HTTP-API

Publish, Batch-Publish, Channel-Infos und Presence-Mitglieder von jedem Backend aus. Jede Pusher-Server-Bibliothek signiert die Anfragen für dich.

// POST /apps/:id/batch_events, signed with your secret
await pusher.triggerBatch([
  { channel: "orders.4821", name: "status", data: { status: "packed" } },
  { channel: "private-user-ada", name: "notify", data: { order: 4821 } },
]);

Teams und Rollen

Hol dein Team in eine Organisation. Rollen entscheiden, wer Secrets sieht, Einstellungen ändert oder nur zuschaut.

owneradmindeveloperbillingviewer
bei jeder Anfrage geprüft, nicht nur beim Login

Nutzung, die du lesen kannst

Nachrichten, API-Aufrufe und Verbindungen, pro Stunde und pro App. Die heutigen Nachrichten stehen direkt neben deinem Tageslimit.

Nachrichten · letzte 24 Std.stündlich

Eine Live-Demo zum Teilen

Jede App hat einen Demo-Raum. Schick den Link an einen zweiten Browser, ganz ohne Konto, und sieh zu, wie die Nachrichten in beiden ankommen.

Chromeship it
Handyship it
signierter Link · 24 Std. gültig

// quickstart

In fünf Minuten von null zum ersten Event.

Das sind die echten Snippets, mit dem Host dieses Dienstes schon eingetragen. Füge deine App-ID und deinen Key ein und führ sie aus.

  1. App erstellen

    Registrieren, eine App erstellen und app_id, Key und Secret kopieren. Für den Free-Tarif brauchst du keine Kreditkarte.

  2. Browser verbinden

    Richte pusher-js auf deinen Host aus, abonniere einen Channel und binde ein Event. Private- und Presence-Channels fragen deinen eigenen Auth-Endpoint.

  3. Vom Server senden

    Ruf trigger aus einer beliebigen Pusher-Server-Bibliothek auf. Das Secret bleibt auf deinem Server; nur der Key geht an den Browser.

import Pusher from "pusher-js";

const pusher = new Pusher("YOUR_APP_KEY", {
  cluster: "", // not used; the host below decides where you connect
  wsHost: "ws.push.vixus.io",
  wsPort: 443,
  wssPort: 443,
  forceTLS: true,
  enabledTransports: ["ws", "wss"],
});

const channel = pusher.subscribe("my-channel");
channel.bind("my-event", (data) => console.log(data));

Mehr im Quickstart und in der HTTP-API-Referenz (auf Englisch).

// von den leuten, die damit ausliefern

Stimmen aus der Praxis, Funktion für Funktion.

Wähl den Teil, der dich interessiert, und lies, was jemand dazu sagt, der ihn nutzt.

Wir sind an einem Dienstagnachmittag von Pusher umgezogen. Der Diff bestand aus der cluster-Zeile und ein paar neuen Optionen; Channel-Namen, der Auth-Endpoint und jeder bind()-Aufruf blieben genau, wie sie waren.
Priya Raman
Staff engineer, Lanternly
Die „Wer ist da?“-Avatare in unseren gemeinsamen Dokumenten sind ein einziger Presence-Channel. member_added und member_removed feuern genau dann, wenn man es erwartet, und die Mitgliederliste ist beim Subscribe sofort da.
Amara Okafor
Frontend lead, Fieldnote
Cursorpositionen gehen mit client--Events direkt von Client zu Client, unser Server sieht diese Datenflut also nie. Eingeschaltet waren sie mit einem Schalter in den Einstellungen, plus einem Reconnect, vor dem mich die Doku gewarnt hatte.
Jonas Lindqvist
Indie developer, Pixelboard
triggerBatch ist der heimliche Held: Ein signierter Request verteilt ein Bestell-Update an Kundschaft, Kurier und Ops-Board. Die Doku sagt gleich zu Beginn, dass Fehler im Body zurückkommen, also hat uns das nie erwischt.
Mei Chen
Backend engineer, Ferrybox
Echo musste gar nicht mitbekommen, dass sich etwas geändert hat. Ich habe die PUSHER_*-Variablen in der .env getauscht, die Vite-Assets neu gebaut, und Broadcasting lief beim ersten Deploy.
Tomás Ferreira
Laravel developer, Freelance
Freelancer bekommen die Rolle Entwickler, die Buchhaltung die Rolle Abrechnung und sieht nie ein App-Secret. Wenn jemand geht, greift das Entfernen bei der nächsten Anfrage, nicht erst, wenn die Session abläuft.
Daniel Mensah
CTO, Tallyworks
Der Tab „Nutzung“ beantwortet Stunde für Stunde, was das letzte Release mit unserem Nachrichtenvolumen gemacht hat. Die heutigen Nachrichten direkt neben dem Tageslimit auf der Apps-Seite haben uns einen bösen Montag erspart.
Sofia Marchetti
Platform engineer, Brightpath
In Workshops öffne ich den Live-Demo-Link auf Laptop und Handy, und der ganze Raum sieht die Nachrichten auf beiden ankommen. Niemand braucht ein Konto, und der Link läuft nach einem Tag von selbst ab.
Kenji Watanabe
Developer advocate, Stackyard
Private Channels laufen über unseren eigenen Auth-Endpoint, die Autorisierungsentscheidung bleibt also in unserem Code. Der Key geht an den Browser, das Secret verlässt nie unsere Server, und jedes Snippet ist genau so geschrieben.
Leila Haddad
Security engineer, Halcyon Health
Wir pausieren unsere Staging-App, wenn sie niemand nutzt. Neue Verbindungen und Publishes werden abgelehnt, nichts wird gelöscht, und „Fortsetzen“ holt sie sofort zurück. Ein Secret zu rotieren ist ein einziger Klick.
Marcus Bell
Founder, Quietcart
Unser Live-Klassenzimmer zeigt, wer aus der Klasse gerade im Raum ist. Presence hat uns die Teilnehmerliste geschenkt; der einzige Code, den wir geschrieben haben, war der Auth-Endpoint, und den hatten wir schon von Pusher.
Rahul Iyer
Engineering manager, Classwise
Im Quickstart ist der echte Host schon eingetragen. Ich habe die Tabs für Browser und Node kopiert, ausgeführt und hatte eine Nachricht in der Konsole, bevor mein Kaffee kalt war.
Ana Petrović
Full-stack developer, Mapleloop

// keine überraschungen

Ehrlich, was heute funktioniert.

Wo Vixus Push Pusher entspricht und wo nicht, bevor du es in Produktion merkst. Die vollständige Tabelle steht in der Doku (auf Englisch).

Funktioniert heute

  • Public-, Private- und Presence-Channels
  • Client-Events, pro App einschaltbar
  • Server-Publish, Batch-Publish und Channel-Infos
  • Benutzer-Authentifizierung
  • Laravel Echo und jede Pusher-Client- und Server-Bibliothek
  • Organisationen mit den Rollen Inhaber, Admin, Entwickler, Abrechnung und Betrachter

Anders als bei Pusher

  • Keine Cluster: Du gibst Host und Port an, und es gibt eine Region
  • Webhooks gibt es im Dashboard noch nicht
  • Keine Debug-Konsole und kein Event-Log
  • Keine Beams-Push-Benachrichtigungen
  • Keine Liste erlaubter Origins pro App

Verschlüsselte und Cache-Channels unterstützt Soketi darunter zwar, unsere Tests decken sie aber noch nicht ab. Du ziehst mit einer bestehenden App um? Folge der Migrationsanleitung (auf Englisch).

// preise

Kostenlos starten. Wachsen, wenn du so weit bist.

Diese Zahlen kommen aus demselben Katalog, den der Dienst durchsetzt. Bezahlte Tarife sind noch nicht buchbar, und ihre Limits können sich bis dahin ändern.

Free

Jetzt verfügbar

Zum Bauen und Testen deiner Echtzeit-Features.

0 $/ Monat
  • 100 gleichzeitige Verbindungen pro App
  • 100.000 Nachrichten pro Tag
  • 2 Apps
  • 1 Teamplatz
  • 7 Tage Nutzungsverlauf
  • Community-Support

Starter

Demnächst

Für Produkte, die live gehen und echten Traffic haben.

Preis folgt
  • 500 gleichzeitige Verbindungen pro App
  • 1.000.000 Nachrichten pro Tag
  • 10 Apps
  • 3 Teamplätze
  • 30 Tage Nutzungsverlauf
  • Support per E-Mail

Pro

Demnächst

Für viel genutzte Apps und Teams, die Reserven brauchen.

Preis folgt
  • 2.000 gleichzeitige Verbindungen pro App
  • 5.000.000 Nachrichten pro Tag
  • 25 Apps
  • 10 Teamplätze
  • 90 Tage Nutzungsverlauf
  • Bevorzugter Support

pusher.subscribe("your-next-feature")

Liefer den Echtzeit-Teil diese Woche aus.

Erstelle eine App im Free-Tarif und sieh zu, wie dein erstes Event im Browser ankommt. Keine Server, keine Kreditkarte.