وقتی دو instance دارید، کاربر متصل به سرور اول پیام کاربر سرور دوم را نمی‌بیند. اینجاست که Pub/Sub وارد می‌شود.

مشکل چند instance

هر instance فقط اتصال‌های خودش را می‌شناسد. برای اینکه پیام به همه برسد، باید یک کانال مشترک بین instanceها وجود داشته باشد.

Redis Pub/Sub به عنوان ستون فقرات

هر instance روی کانال‌های مربوط به اتاق‌های فعالش subscribe می‌کند و پیام‌ها را روی همان کانال publish می‌کند. اینطور پخش پیام مستقل از تعداد سرورها کار می‌کند.

کاهش بار دیتابیس

نوشتن هر رویداد به صورت جداگانه در دیتابیس سریع‌ترین راه برای از پا درآوردن آن است. با بافر کردن در Redis و نوشتن دسته‌ای در بازه‌های کوتاه، بار نوشتن به شکل چشمگیری کم می‌شود.

PM2 و Nginx

با PM2 در حالت cluster از تمام هسته‌ها استفاده کنید و در Nginx حتماً sticky session و تنظیمات upgrade header را درست کنید، وگرنه اتصال‌ها مدام قطع می‌شوند.