Tôi không biết thiết kế của bạn là gì, nhưng bạn có thể đăng ký với một ứng dụng redis trên nhiều kênh (sau khi bạn đăng ký với ứng dụng khách, sau đó bạn chỉ có thể đăng ký kênh khác hoặc hủy đăng ký trong kết nối này:http://redis.io/commands / subscribe), vì sau khi bạn nhận được tin nhắn, bạn đã có đầy đủ thông tin mà tin nhắn này đến từ kênh nào. Sau đó, bạn có thể phân phối thông báo này cho tất cả các khách hàng quan tâm.
Điều này giúp ích cho tôi một chút vì tôi có thể đặt loại thông báo trong tên kênh và sau đó tự động chọn hành động cho từng thông báo từ chức năng nhỏ, thay vì tạo đăng ký riêng biệt cho từng kênh với logic riêng biệt.
Bên trong máy chủ node.js của tôi, tôi chỉ có 2 ứng dụng khách redis:
- ứng dụng khách đơn giản cho tất cả các hành động tiêu chuẩn -
lpush
,sadd
vân vân và vân vân - ứng dụng khách đăng ký - ứng dụng lắng nghe thông báo qua các kênh đã đăng ký, sau đó thông báo này được phân phối đến tất cả các phiên (được lưu trữ dưới dạng bộ cho từng loại kênh) bằng ứng dụng khách redis đầu tiên.