Vixus Push
Arrivi da Pusher? Basta cambiare la configurazione

Il tempo reale, senza gestire i server.

Canali, presence ed eventi client sul protocollo Pusher. Tieni pusher-js e la tua libreria server, puntali su Vixus Push e dedica la settimana alla funzionalità invece che a una flotta di WebSocket.

$ npm install pusher-js
Piano Free, senza carta Qualsiasi SDK Pusher Basato su Soketi, open source
Funziona con le librerie Pusher che usi già
pusher-jsLaravel EchoNode.jsPHPPythonRubyGoJava.NETiOSAndroid

// funzionalità

Tutto quello che serve alla tua funzionalità in tempo reale. Niente da sorvegliare.

Il protocollo Pusher che conosci, su un’infrastruttura che non devi gestire tu. Crea un’app, copia tre valori e rilascia.

Compatibile con Pusher, senza riscrivere

Tieni pusher-js, Laravel Echo e tutte le librerie server di Pusher. Sostituisci il cluster con un host: nomi dei canali, eventi ed endpoint di autenticazione restano esattamente come sono.

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

Pubblici, privati e presence

Trasmetti a tutti, proteggi i canali con il tuo endpoint di autenticazione o scopri chi è online in questo momento.

presence-doc-913 online
Amara Okaformodifica
Jonas Berglegge
Mei Chennuovo arrivo
pusher:member_added { id: "mei" }

Eventi client

Indicatori di scrittura e cursori passano direttamente da client a client sui canali privati e presence. Un interruttore per app.

Ada sta scrivendochannel.trigger("client-typing", …)

Una vera API HTTP

Pubblica, pubblica in batch, leggi le info dei canali ed elenca i membri presence da qualsiasi backend. Ogni libreria server di Pusher firma le richieste per te.

// 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 } },
]);

Team e ruoli

Porta il tuo team in un’organizzazione. I ruoli decidono chi vede i secret, chi cambia le impostazioni e chi guarda soltanto.

owneradmindeveloperbillingviewer
verificato a ogni richiesta, non solo al login

Un utilizzo leggibile

Messaggi, chiamate API e connessioni, ora per ora, per ogni app. I messaggi di oggi compaiono accanto al tuo limite giornaliero.

messaggi · ultime 24 horario

Una demo live da condividere

Ogni app ha una stanza demo. Manda il link a un secondo browser, senza account, e guarda i messaggi arrivare su entrambi.

Chromeship it
Telefonoship it
link firmato · scade tra 24 h

// quickstart

Da zero al primo evento in cinque minuti.

Sono gli snippet veri, con l’host di questo servizio già inserito. Incolla l’ID e la key della tua app ed eseguili.

  1. Crea un’app

    Registrati, crea un’app e copia app_id, key e secret. Per il piano Free non serve la carta.

  2. Connetti il browser

    Punta pusher-js sul tuo host, iscriviti a un canale e ascolta un evento. I canali privati e presence chiamano il tuo endpoint di autenticazione.

  3. Pubblica dal server

    Chiama trigger da qualsiasi libreria server di Pusher. Il secret resta sul tuo server; al browser arriva solo la key.

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));

Trovi di più nel quickstart e nel riferimento dell’API HTTP (in inglese).

// da chi lo usa ogni giorno

Esperienze reali, funzionalità per funzionalità.

Scegli la parte che ti interessa e leggi cosa ne pensa chi la usa.

Abbiamo lasciato Pusher un martedì pomeriggio. Il diff era la riga cluster più qualche opzione nuova; nomi dei canali, endpoint di autenticazione e ogni chiamata a bind() sono rimasti esattamente com’erano.
Priya Raman
Staff engineer, Lanternly
Gli avatar «chi c’è» sui nostri documenti condivisi sono un unico canale presence. member_added e member_removed scattano esattamente quando te lo aspetti, e l’elenco dei membri arriva già al momento dell’iscrizione.
Amara Okafor
Frontend lead, Fieldnote
Le posizioni del cursore passano da client a client con gli eventi client-, quindi il nostro server non vede mai quel flusso. Per attivarli è bastato un interruttore nelle impostazioni, più una riconnessione, come avvisava la documentazione.
Jonas Lindqvist
Indie developer, Pixelboard
triggerBatch è l’eroe silenzioso: una sola richiesta firmata invia l’aggiornamento di un ordine al cliente, al corriere e alla dashboard operativa. La documentazione avverte subito che gli errori tornano nel body, quindi non ci ha mai colto di sorpresa.
Mei Chen
Backend engineer, Ferrybox
Echo non ha dovuto accorgersi di nulla. Ho cambiato le variabili PUSHER_* nel .env, ricompilato gli asset Vite e il broadcasting ha funzionato al primo deploy.
Tomás Ferreira
Laravel developer, Freelance
Chi lavora a progetto ha il ruolo Sviluppatore, l’amministrazione il ruolo Fatturazione e non vede mai un secret delle app. Quando qualcuno se ne va, la rimozione vale dalla sua richiesta successiva, non da quando gli scade la sessione.
Daniel Mensah
CTO, Tallyworks
La scheda «Utilizzo» risponde ora per ora alla domanda: cosa ha fatto quel rilascio al nostro volume di messaggi? Avere i messaggi di oggi accanto al limite giornaliero nella pagina App ci ha risparmiato un lunedì di sorprese.
Sofia Marchetti
Platform engineer, Brightpath
Nei workshop apro il link della demo live sul portatile e sul telefono, e tutta la sala vede i messaggi arrivare su entrambi. Nessuno ha bisogno di un account, e il link scade da solo dopo un giorno.
Kenji Watanabe
Developer advocate, Stackyard
I canali privati passano dal nostro endpoint di autenticazione, quindi la decisione di autorizzazione resta nel nostro codice. La key va al browser, il secret non lascia mai i nostri server, e ogni snippet è scritto così.
Leila Haddad
Security engineer, Halcyon Health
Mettiamo in pausa la nostra app di staging quando nessuno la usa. Nuove connessioni e pubblicazioni vengono rifiutate, non si cancella niente, e la ripresa la rimette subito in funzione. Ruotare un secret è un solo pulsante.
Marcus Bell
Founder, Quietcart
La nostra classe dal vivo mostra chi è in aula in quel momento. Con presence l’elenco dei presenti ce l’abbiamo gratis; l’unico codice che abbiamo scritto è l’endpoint di autenticazione, e quello c’era già da Pusher.
Rahul Iyer
Engineering manager, Classwise
Nel quickstart l’host vero è già inserito. Ho copiato le schede browser e Node, le ho eseguite e avevo un messaggio in console prima che il caffè si raffreddasse.
Ana Petrović
Full-stack developer, Mapleloop

// nessuna sorpresa

Onesti su cosa funziona oggi.

Dove Vixus Push si comporta come Pusher e dove no, prima che tu lo scopra in produzione. La tabella completa è nella documentazione (in inglese).

Funziona oggi

  • Canali pubblici, privati e presence
  • Eventi client, attivabili per app
  • Pubblicazione dal server, pubblicazione in batch e info dei canali
  • Autenticazione utente
  • Laravel Echo e tutte le librerie client e server di Pusher
  • Organizzazioni con i ruoli Proprietario, Admin, Sviluppatore, Fatturazione e Visualizzatore

Diverso da Pusher

  • Niente cluster: indichi host e porta, e c’è una sola regione
  • I webhook non sono ancora nella dashboard
  • Niente console di debug né log degli eventi
  • Niente notifiche push Beams
  • Niente elenco di origini consentite per app

I canali cifrati e cache sono supportati da Soketi sotto il cofano, ma non sono ancora coperti dai nostri test. Stai migrando un’app esistente? Segui la guida alla migrazione (in inglese).

// prezzi

Inizia gratis. Cresci al tuo ritmo.

Questi numeri vengono dallo stesso catalogo che il servizio applica. I piani a pagamento non sono ancora in vendita e i loro limiti possono cambiare prima di allora.

Free

Disponibile ora

Per costruire e provare le tue funzionalità in tempo reale.

0 USD/ mese
  • 100 connessioni simultanee per app
  • 100.000 messaggi al giorno
  • 2 app
  • 1 posto nel team
  • 7 giorni di storico dell’utilizzo
  • Supporto della community

Starter

In arrivo

Per i prodotti che vanno online con utenti reali.

Prezzo in arrivo
  • 500 connessioni simultanee per app
  • 1.000.000 messaggi al giorno
  • 10 app
  • 3 posti nel team
  • 30 giorni di storico dell’utilizzo
  • Supporto via email

Pro

In arrivo

Per app molto usate e team che hanno bisogno di margine.

Prezzo in arrivo
  • 2000 connessioni simultanee per app
  • 5.000.000 messaggi al giorno
  • 25 app
  • 10 posti nel team
  • 90 giorni di storico dell’utilizzo
  • Supporto prioritario

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

Rilascia la parte in tempo reale questa settimana.

Crea un’app con il piano Free e guarda il tuo primo evento arrivare nel browser. Nessun server da gestire, nessuna carta da inserire.