Vixus Push
Vous venez de Pusher ? Il suffit de changer la configuration

Le temps réel, sans gérer de serveurs.

Canaux, présence et événements client via le protocole Pusher. Gardez pusher-js et votre bibliothèque serveur, pointez-les vers Vixus Push et consacrez votre semaine à la fonctionnalité plutôt qu’à une flotte de WebSockets.

$ npm install pusher-js
Offre Free, sans carte bancaire Tous les SDK Pusher Basé sur Soketi, open source
Fonctionne avec les bibliothèques Pusher que vous utilisez déjà
pusher-jsLaravel EchoNode.jsPHPPythonRubyGoJava.NETiOSAndroid

// fonctionnalités

Tout ce qu’il faut à votre fonctionnalité temps réel. Rien à surveiller.

Le protocole Pusher que vous connaissez, sur une infrastructure que vous n’avez pas à gérer. Créez une app, copiez trois valeurs, livrez.

Compatible Pusher, sans réécriture

Gardez pusher-js, Laravel Echo et toutes les bibliothèques serveur Pusher. Remplacez le cluster par un hôte : les noms de canaux, les événements et votre endpoint d’authentification restent identiques.

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, privé et présence

Diffusez à tout le monde, protégez des canaux avec votre propre endpoint d’authentification, ou sachez qui est en ligne en ce moment.

presence-doc-913 en ligne
Amara Okaformodifie
Jonas Bergconsulte
Mei Chenvient d’arriver
pusher:member_added { id: "mei" }

Événements client

Indicateurs de saisie et curseurs passent directement de client à client sur les canaux privés et de présence. Un interrupteur par app.

Ada écritchannel.trigger("client-typing", …)

Une vraie API HTTP

Publiez, publiez par lots, lisez les infos des canaux et listez les membres de présence depuis n’importe quel backend. Chaque bibliothèque serveur Pusher signe les requêtes pour vous.

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

Équipes et rôles

Invitez votre équipe dans une organisation. Les rôles décident qui voit les secrets, qui modifie les paramètres et qui se contente de consulter.

owneradmindeveloperbillingviewer
vérifié à chaque requête, pas seulement à la connexion

Une utilisation lisible

Messages, appels API et connexions, heure par heure, pour chaque app. Les messages du jour s’affichent à côté de votre limite quotidienne.

messages · dernières 24 hpar heure

Une démo en direct à partager

Chaque app a sa salle de démo. Envoyez le lien à un second navigateur, sans compte, et regardez les messages arriver des deux côtés.

Chromeship it
Téléphoneship it
lien signé · expire dans 24 h

// quickstart

De zéro à votre premier événement en cinq minutes.

Ce sont les vrais extraits de code, avec l’hôte de ce service déjà renseigné. Collez l’ID et la clé de votre app, puis lancez-les.

  1. Créer une app

    Inscrivez-vous, créez une app et copiez son app_id, sa clé et son secret. L’offre Free ne demande pas de carte bancaire.

  2. Connecter le navigateur

    Pointez pusher-js vers votre hôte, abonnez-vous à un canal et écoutez un événement. Les canaux privés et de présence appellent votre propre endpoint d’authentification.

  3. Publier depuis votre serveur

    Appelez trigger depuis n’importe quelle bibliothèque serveur Pusher. Le secret reste sur votre serveur ; seule la clé part dans le navigateur.

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

Plus de détails dans le quickstart et la référence de l’API HTTP (en anglais).

// celles et ceux qui livrent avec

Retours d’expérience, fonctionnalité par fonctionnalité.

Choisissez la partie qui vous intéresse et découvrez ce qu’en dit quelqu’un qui l’utilise.

Nous avons quitté Pusher un mardi après-midi. Le diff se résumait à la ligne cluster et à quelques nouvelles options ; les noms de canaux, l’endpoint d’authentification et chaque appel à bind() sont restés exactement les mêmes.
Priya Raman
Staff engineer, Lanternly
Les avatars « qui est là » sur nos documents partagés, c’est un seul canal de présence. member_added et member_removed se déclenchent exactement quand on s’y attend, et la liste des membres est là dès l’abonnement.
Amara Okafor
Frontend lead, Fieldnote
Les positions de curseur passent de client à client avec les événements client-, donc notre serveur ne voit jamais ce flot. Pour les activer, un interrupteur dans les paramètres, plus une reconnexion, ce dont la doc m’avait prévenu.
Jonas Lindqvist
Indie developer, Pixelboard
triggerBatch est le héros discret : une seule requête signée diffuse une mise à jour de commande au client, au livreur et au tableau des opérations. La doc précise d’emblée que les erreurs reviennent dans le corps de la réponse, donc on ne s’est jamais fait avoir.
Mei Chen
Backend engineer, Ferrybox
Echo n’a même pas eu besoin de savoir que quelque chose avait changé. J’ai remplacé les variables PUSHER_* dans .env, recompilé les assets Vite, et le broadcasting a fonctionné dès le premier déploiement.
Tomás Ferreira
Laravel developer, Freelance
Les prestataires ont le rôle Développeur, la compta le rôle Facturation et ne voit jamais un secret d’app. Quand quelqu’un part, son retrait prend effet à sa requête suivante, pas quand sa session finit par expirer.
Daniel Mensah
CTO, Tallyworks
L’onglet « Utilisation » répond heure par heure à la question : qu’a fait cette release à notre volume de messages ? Voir les messages du jour à côté de la limite quotidienne sur la page Apps nous a évité un lundi plein de surprises.
Sofia Marchetti
Platform engineer, Brightpath
En atelier, j’ouvre le lien de la démo en direct sur mon portable et sur mon téléphone, et toute la salle voit les messages arriver sur les deux. Personne n’a besoin de compte, et le lien expire tout seul au bout d’un jour.
Kenji Watanabe
Developer advocate, Stackyard
Les canaux privés passent par notre propre endpoint d’authentification, donc la décision d’autorisation reste dans notre code. La clé part dans le navigateur, le secret ne quitte jamais nos serveurs, et chaque extrait de code est écrit ainsi.
Leila Haddad
Security engineer, Halcyon Health
Nous mettons notre app de staging en pause quand personne ne s’en sert. Les nouvelles connexions et publications sont refusées, rien n’est supprimé, et la reprise la remet en route aussitôt. Renouveler un secret tient en un bouton.
Marcus Bell
Founder, Quietcart
Notre classe en direct montre quels élèves sont dans la salle. La présence nous a donné la liste gratuitement ; le seul code que nous avons écrit, c’est l’endpoint d’authentification, et nous l’avions déjà grâce à Pusher.
Rahul Iyer
Engineering manager, Classwise
Le quickstart contient déjà le vrai hôte. J’ai copié les onglets navigateur et Node, je les ai lancés, et j’avais un message dans la console avant que mon café refroidisse.
Ana Petrović
Full-stack developer, Mapleloop

// pas de surprises

Transparent sur ce qui marche aujourd’hui.

Là où Vixus Push se comporte comme Pusher et là où ce n’est pas le cas, avant que vous ne le découvriez en production. Le tableau complet se trouve dans la documentation (en anglais).

Disponible aujourd’hui

  • Canaux publics, privés et de présence
  • Événements client, activables par app
  • Publication serveur, publication par lots et infos des canaux
  • Authentification des utilisateurs
  • Laravel Echo et toutes les bibliothèques client et serveur Pusher
  • Organisations avec les rôles Propriétaire, Admin, Développeur, Facturation et Lecteur

Différent de Pusher

  • Pas de clusters : vous indiquez un hôte et un port, et il y a une seule région
  • Les webhooks ne sont pas encore dans le tableau de bord
  • Pas de console de débogage ni de journal des événements
  • Pas de notifications push Beams
  • Pas de liste d’origines autorisées par app

Les canaux chiffrés et les canaux cache sont pris en charge par Soketi en dessous, mais pas encore couverts par nos tests. Vous migrez une app existante ? Suivez le guide de migration (en anglais).

// tarifs

Commencez gratuitement. Évoluez à votre rythme.

Ces chiffres viennent du même catalogue que celui appliqué par le service. Les offres payantes ne sont pas encore en vente, et leurs limites peuvent changer d’ici là.

Free

Disponible

Pour créer et tester vos fonctionnalités temps réel.

0 $US/ mois
  • 100 connexions simultanées par app
  • 100 000 messages par jour
  • 2 apps
  • 1 place dans l’équipe
  • 7 jours d’historique d’utilisation
  • Support communautaire

Starter

Bientôt

Pour les produits qui passent en production avec de vrais utilisateurs.

Prix à venir
  • 500 connexions simultanées par app
  • 1 000 000 messages par jour
  • 10 apps
  • 3 places dans l’équipe
  • 30 jours d’historique d’utilisation
  • Support par e-mail

Pro

Bientôt

Pour les apps très actives et les équipes qui ont besoin de marge.

Prix à venir
  • 2 000 connexions simultanées par app
  • 5 000 000 messages par jour
  • 25 apps
  • 10 places dans l’équipe
  • 90 jours d’historique d’utilisation
  • Support prioritaire

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

Livrez la partie temps réel cette semaine.

Créez une app avec l’offre Free et regardez votre premier événement arriver dans le navigateur. Aucun serveur à gérer, aucune carte à saisir.