私は最近、同様のユース ケースに取り組み、nodejs、socketio、および redis pubsub を使用しました。
コードはhttps://github.com/roshansingh/realtime-notificationsで入手できます。
質問に戻ります。
- ユーザーは他のユーザーを「フォロー」できます
- ユーザーがオンラインで、「フォロワー」が新しいメッセージを投稿すると、ユーザーはリアルタイムの通知を受け取る必要があります。
socketio を使用してルームを作成し、redis pubsub で同じ名前のチャネルを作成することで、両方を実現できます。
フローは次のようになります。ユーザーがログインするとすぐに、socketio ルーム (John、Dan など) に参加させることができます。これにより、サブスクライブしたすべてのルームがデータベースに保存されます。同時に、これらのチャネル名 (John など) で redis pubsub にサブスクライブします。これらの更新を受信すると、部屋、つまりすべてのオンライン ユーザーにブロードキャストできます。
John のアクティビティを同じチャネル名 (John) で redis に公開する必要があります。
上に貼り付けたリンクのコードを読んでください。助けが必要な場合はお知らせください。