Teamchat en supportchat
Berichten worden verspreid naar elke server die de verbinding van een lid vasthoudt, en de stream geeft nieuwkomers de achterstand.
Verspreid berichten in realtime naar elke verbonden client, met gesharde kanalen voor clusters en streams voor geschiedenis.
Elke WebSocket-server abonneert zich op de rooms waarin zijn verbonden gebruikers zitten.
Een geanimeerde walkthrough met echte HotKV-commando's en voorbeeldantwoorden. Klik op een stap om ernaartoe te springen. Commando's en antwoorden blijven Engels, precies zoals je ze in HotKV typt en ziet.
Een chatroom of live notificatiefeed moet alle verbonden gebruikers tegelijk bereiken, over veel WebSocket-servers heen. Een database pollen is te traag en te duur, en de servers hebben een gedeelde manier nodig om elkaar te vertellen dat er iets is gebeurd.
Elke WebSocket-server abonneert zich op de kanalen waar zijn gebruikers om geven. Wanneer er iets gebeurt, bereikt één PUBLISH elke geabonneerde server, die het doorstuurt naar zijn gebruikers. Gesharde kanalen houden het verkeer op de node die het kanaal bezit in een cluster, en een stream naast elke room bewaart de geschiedenis voor gebruikers die later binnenkomen.
Elke WebSocket-server abonneert zich op de rooms waarin zijn verbonden gebruikers zitten.
SUBSCRIBE room:42Haar server publiceert eenmaal. Het antwoord is hoeveel abonnees het ontvingen.
PUBLISH room:42 "{\"from\":\"alice\",\"text\":\"Deploy is green\"}"Het bericht wordt ook toegevoegd aan de stream van de room, begrensd op de laatste 1000 berichten.
XADD room:42:history MAXLEN ~ 1000 * from alice text "Deploy is green"Hij leest de laatste 50 berichten uit de stream en gaat daarna live op het kanaal.
XREVRANGE room:42:history + - COUNT 50In clustermodus houdt SPUBLISH het bericht op de node die het kanaal bezit.
SPUBLISH room:{42}:typing "alice"Berichten worden verspreid naar elke server die de verbinding van een lid vasthoudt, en de stream geeft nieuwkomers de achterstand.
Orderupdates, vermeldingen en meldingen worden naar de browser gepusht op het moment dat ze plaatsvinden.
Cursorposities en typindicatoren worden uitgezonden op kortlevende kanalen.
Eén publicatie bereikt elke abonnee.
PUBLISHSUBSCRIBEAbonneer je op room:* om elke room te ontvangen.
PSUBSCRIBEKanalen blijven in een cluster op de node die ze bezit.
SPUBLISHSSUBSCRIBEKoppel een kanaal aan een begrensde stream voor berichten die gebruikers hebben gemist.
XADDXREVRANGENee. Pub/sub levert af bij wie op dat moment is geabonneerd. Gebruik een stream naast het kanaal als gebruikers geschiedenis nodig hebben.
Ja. Gebruik gesharde pub/sub (SPUBLISH, SSUBSCRIBE) zodat het verkeer van elk kanaal op de node blijft die het bezit.
Ja. Keyspace-notificaties publiceren events voor sleutelwijzigingen. Zie de documentatie over keyspace-notificaties.
HotKV spreekt het Redis-protocol, dus je kunt een bestaande client erop richten en dezelfde commando's uitvoeren.