Командний чат і чат підтримки
Повідомлення розходяться до кожного сервера, що тримає з'єднання учасника, а потік дає новачкам попередню історію.
Розсилайте повідомлення кожному підключеному клієнту в реальному часі, із шардованими каналами для кластерів і потоками для історії.
Кожен сервер WebSocket підписується на кімнати, у яких перебувають його підключені користувачі.
Анімований покроковий розбір з реальними командами HotKV і прикладами відповідей. Натисніть будь-який крок, щоб перейти до нього. Команди та відповіді залишаються англійською, так само, як ви вводите й бачите їх у HotKV.
Кімната чату чи жива стрічка сповіщень має досягати кожного підключеного користувача одночасно, через багато серверів WebSocket. Опитування бази даних надто повільне й дороге, а серверам потрібен спільний спосіб повідомляти одне одному, що щось сталося.
Кожен сервер WebSocket підписується на канали, що цікавлять його користувачів. Коли щось відбувається, один PUBLISH досягає кожного підписаного сервера, який пересилає його своїм користувачам. Шардовані канали тримають трафік на вузлі, що володіє каналом у кластері, а потік біля кожної кімнати зберігає історію для користувачів, які приєднуються пізніше.
Кожен сервер WebSocket підписується на кімнати, у яких перебувають його підключені користувачі.
SUBSCRIBE room:42Її сервер публікує один раз. У відповіді вказано, скільки підписників його отримали.
PUBLISH room:42 "{\"from\":\"alice\",\"text\":\"Deploy is green\"}"Повідомлення також додається до потоку кімнати, обмеженого останніми 1000 повідомлень.
XADD room:42:history MAXLEN ~ 1000 * from alice text "Deploy is green"Він читає останні 50 повідомлень із потоку, потім переходить до живого каналу.
XREVRANGE room:42:history + - COUNT 50У режимі кластера SPUBLISH тримає повідомлення на вузлі, що володіє каналом.
SPUBLISH room:{42}:typing "alice"Повідомлення розходяться до кожного сервера, що тримає з'єднання учасника, а потік дає новачкам попередню історію.
Оновлення замовлень, згадки й сповіщення надсилаються в браузер у ту ж мить, коли відбуваються.
Позиції курсорів та індикатори набору розсилаються на короткоживучих каналах.
Одна публікація досягає кожного підписника.
PUBLISHSUBSCRIBEПідпишіться на room:*, щоб отримувати кожну кімнату.
PSUBSCRIBEКанали лишаються на вузлі, що ними володіє, у кластері.
SPUBLISHSSUBSCRIBEПоєднайте канал з обмеженим потоком для повідомлень, які користувачі пропустили.
XADDXREVRANGEНі. Pub/sub доставляє тим, хто підписаний у цей момент. Використовуйте потік біля каналу, якщо користувачам потрібна історія.
Так. Використовуйте шардований pub/sub (SPUBLISH, SSUBSCRIBE), щоб трафік кожного каналу лишався на вузлі, що ним володіє.
Так. Сповіщення простору ключів публікують події про зміни ключів. Дивіться документацію щодо сповіщень простору ключів.
HotKV розмовляє протоколом Redis, тож ви можете направити на нього наявний клієнт і виконувати ті самі команди.