Chat d'équipe et chat de support
Les messages sont diffusés à chaque serveur qui détient la connexion d'un membre, et le stream donne l'historique aux nouveaux venus.
Diffusez les messages à chaque client connecté en temps réel, avec des canaux shardés pour les clusters et des streams pour l'historique.
Chaque serveur WebSocket s'abonne aux salons où se trouvent ses utilisateurs connectés.
Une démonstration animée avec de vraies commandes HotKV et des exemples de réponses. Cliquez sur une étape pour y accéder directement. Les commandes et les réponses restent en anglais, exactement comme vous les saisissez et les voyez dans HotKV.
Un salon de discussion ou un fil de notifications en direct doit atteindre chaque utilisateur connecté en même temps, à travers de nombreux serveurs WebSocket. Interroger une base de données en boucle est trop lent et trop coûteux, et les serveurs ont besoin d'un moyen commun de se signaler qu'il s'est passé quelque chose.
Chaque serveur WebSocket s'abonne aux canaux qui intéressent ses utilisateurs. Quand quelque chose se produit, un seul PUBLISH atteint chaque serveur abonné, qui le transmet à ses utilisateurs. Dans un cluster, les canaux shardés gardent le trafic sur le nœud propriétaire du canal, et un stream à côté de chaque salon conserve l'historique pour les utilisateurs qui arrivent plus tard.
Chaque serveur WebSocket s'abonne aux salons où se trouvent ses utilisateurs connectés.
SUBSCRIBE room:42Son serveur publie une seule fois. La réponse indique combien d'abonnés l'ont reçu.
PUBLISH room:42 "{\"from\":\"alice\",\"text\":\"Deploy is green\"}"Le message est aussi ajouté au stream du salon, plafonné aux 1000 derniers messages.
XADD room:42:history MAXLEN ~ 1000 * from alice text "Deploy is green"Il lit les 50 derniers messages dans le stream, puis passe en direct sur le canal.
XREVRANGE room:42:history + - COUNT 50En mode cluster, SPUBLISH garde le message sur le nœud propriétaire du canal.
SPUBLISH room:{42}:typing "alice"Les messages sont diffusés à chaque serveur qui détient la connexion d'un membre, et le stream donne l'historique aux nouveaux venus.
Les mises à jour de commandes, les mentions et les alertes sont envoyées au navigateur dès qu'elles se produisent.
Les positions de curseur et les indicateurs de saisie sont diffusés sur des canaux éphémères.
Une publication atteint chaque abonné.
PUBLISHSUBSCRIBEAbonnez-vous à room:* pour recevoir tous les salons.
PSUBSCRIBEDans un cluster, les canaux restent sur le nœud qui les possède.
SPUBLISHSSUBSCRIBEAssociez un canal à un stream plafonné pour les messages que les utilisateurs ont manqués.
XADDXREVRANGENon. Le pub/sub livre à ceux qui sont abonnés à cet instant. Utilisez un stream à côté du canal si les utilisateurs ont besoin d'un historique.
Oui. Utilisez le pub/sub shardé (SPUBLISH, SSUBSCRIBE) pour que le trafic de chaque canal reste sur le nœud qui le possède.
Oui. Les keyspace notifications publient des événements lors des modifications de clés. Consultez la documentation sur les keyspace notifications.
HotKV parle le protocole Redis. Vous pouvez donc y connecter un client existant et exécuter ces mêmes commandes.