צ'אט צוות וצ'אט תמיכה
הודעות מופצות לכל שרת שמחזיק חיבור של חבר, והזרם נותן לבאים החדשים את ההיסטוריה.
מפיצים הודעות לכל לקוח מחובר בזמן אמת, עם ערוצים מפוצלים לאשכולות וזרמים להיסטוריה.
כל שרת 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, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.