Chat de equipo y de soporte
Los mensajes se distribuyen a todos los servidores que tienen la conexión de un miembro, y el stream da a los recién llegados los mensajes anteriores.
Distribuye mensajes a cada cliente conectado en tiempo real, con canales fragmentados para clústeres y streams para el historial.
Cada servidor WebSocket se suscribe a las salas en las que están sus usuarios conectados.
Un recorrido animado con comandos reales de HotKV y respuestas de ejemplo. Haz clic en cualquier paso para saltar a él. Los comandos y las respuestas se quedan en inglés, tal como los escribes y los ves en HotKV.
Una sala de chat o un feed de notificaciones en vivo tiene que llegar a todos los usuarios conectados a la vez, repartidos entre muchos servidores WebSocket. Consultar una base de datos es demasiado lento y caro, y los servidores necesitan una forma compartida de avisarse de que algo ha pasado.
Cada servidor WebSocket se suscribe a los canales que interesan a sus usuarios. Cuando ocurre algo, un solo PUBLISH llega a todos los servidores suscritos, que lo reenvían a sus usuarios. Los canales fragmentados mantienen el tráfico en el nodo propietario del canal dentro de un clúster, y un stream junto a cada sala guarda el historial para los usuarios que se unen más tarde.
Cada servidor WebSocket se suscribe a las salas en las que están sus usuarios conectados.
SUBSCRIBE room:42Su servidor publica una vez. La respuesta es cuántos suscriptores lo recibieron.
PUBLISH room:42 "{\"from\":\"alice\",\"text\":\"Deploy is green\"}"El mensaje también se añade al stream de la sala, limitado a los últimos 1000 mensajes.
XADD room:42:history MAXLEN ~ 1000 * from alice text "Deploy is green"Lee los últimos 50 mensajes del stream y luego pasa a escuchar el canal en vivo.
XREVRANGE room:42:history + - COUNT 50En modo clúster, SPUBLISH mantiene el mensaje en el nodo propietario del canal.
SPUBLISH room:{42}:typing "alice"Los mensajes se distribuyen a todos los servidores que tienen la conexión de un miembro, y el stream da a los recién llegados los mensajes anteriores.
Las actualizaciones de pedidos, las menciones y las alertas llegan al navegador en el momento en que ocurren.
Las posiciones del cursor y los indicadores de escritura se difunden en canales de vida corta.
Una publicación llega a todos los suscriptores.
PUBLISHSUBSCRIBESuscríbete a room:* para recibir todas las salas.
PSUBSCRIBEEn un clúster, los canales se quedan en el nodo que los posee.
SPUBLISHSSUBSCRIBEAcompaña un canal con un stream limitado para los mensajes que los usuarios se perdieron.
XADDXREVRANGENo. Pub/sub entrega a quien esté suscrito en ese momento. Usa un stream junto al canal si los usuarios necesitan historial.
Sí. Usa pub/sub fragmentado (SPUBLISH, SSUBSCRIBE) para que el tráfico de cada canal se quede en el nodo que lo posee.
Sí. Las notificaciones del keyspace publican eventos cuando cambian las claves. Consulta la documentación sobre notificaciones del keyspace.
HotKV habla el protocolo de Redis, así que puedes apuntar un cliente que ya usas hacia él y ejecutar estos mismos comandos.