Chat de equipe e de suporte
As mensagens se espalham para todos os servidores que têm a conexão de um membro, e o stream entrega o histórico a quem acabou de chegar.
Distribua mensagens para cada cliente conectado em tempo real, com canais fragmentados para clusters e streams para o histórico.
Cada servidor WebSocket assina as salas em que os seus usuários conectados estão.
Uma demonstração animada com comandos reais do HotKV e respostas de exemplo. Clique em qualquer etapa para ir direto a ela. Os comandos e as respostas ficam em inglês, exatamente como você os digita e vê no HotKV.
Uma sala de chat ou um feed de notificações ao vivo precisa chegar a todos os usuários conectados ao mesmo tempo, em muitos servidores WebSocket. Fazer polling em um banco de dados é lento e caro demais, e os servidores precisam de um jeito compartilhado de avisar uns aos outros que algo aconteceu.
Cada servidor WebSocket assina os canais que interessam aos seus usuários. Quando algo acontece, um único PUBLISH chega a todos os servidores assinantes, que o repassam aos seus usuários. Os canais fragmentados mantêm o tráfego no nó dono do canal em um cluster, e um stream ao lado de cada sala guarda o histórico para os usuários que entram depois.
Cada servidor WebSocket assina as salas em que os seus usuários conectados estão.
SUBSCRIBE room:42O servidor dela publica uma vez. A resposta diz quantos assinantes a receberam.
PUBLISH room:42 "{\"from\":\"alice\",\"text\":\"Deploy is green\"}"A mensagem também é anexada ao stream da sala, limitado às últimas 1000 mensagens.
XADD room:42:history MAXLEN ~ 1000 * from alice text "Deploy is green"Ele lê as últimas 50 mensagens do stream e depois passa a receber o canal ao vivo.
XREVRANGE room:42:history + - COUNT 50No modo cluster, SPUBLISH mantém a mensagem no nó dono do canal.
SPUBLISH room:{42}:typing "alice"As mensagens se espalham para todos os servidores que têm a conexão de um membro, e o stream entrega o histórico a quem acabou de chegar.
Atualizações de pedidos, menções e alertas são enviados ao navegador no momento em que acontecem.
Posições do cursor e indicadores de digitação são transmitidos em canais de vida curta.
Uma publicação chega a todos os assinantes.
PUBLISHSUBSCRIBEAssine room:* para receber todas as salas.
PSUBSCRIBEOs canais ficam no nó que é dono deles em um cluster.
SPUBLISHSSUBSCRIBEJunte um canal a um stream limitado para as mensagens que os usuários perderam.
XADDXREVRANGENão. O pub/sub entrega para quem está inscrito naquele momento. Use um stream ao lado do canal se os usuários precisarem de histórico.
Sim. Use pub/sub fragmentado (SPUBLISH, SSUBSCRIBE) para que o tráfego de cada canal fique no nó dono dele.
Sim. As notificações de keyspace publicam eventos para as mudanças de chaves. Veja a documentação sobre notificações de keyspace.
O HotKV fala o protocolo Redis, então você pode apontar um cliente existente para ele e executar estes mesmos comandos.