Redis と JavaScript を使用してシンプルなインスタント通知アプリケーションを構築する
現代のアプリケーション開発では、インスタント通知はますます一般的かつ重要な機能になっています。これにより、アプリケーションがリアルタイムの情報をユーザーに迅速かつ正確に配信できるようになり、ユーザー エクスペリエンスと対話性が向上します。この記事では、Redis と JavaScript を使用して簡単なインスタント通知アプリケーションを構築する方法を紹介します。
まず、Redis について理解する必要があります。 Redis はオープン ソースのキー/値ストレージ システムであり、キャッシュ データベースとしての使用に非常に適しています。これはメモリに基づいており、高性能の読み取りおよび書き込み操作を提供し、さまざまなデータ構造と操作方法をサポートしています。このアプリケーションでは、Redis を使用してユーザーのサブスクリプション情報とメッセージ キューを保存します。
始める前に、Redis がシステムにインストールされており、対応する Redis ドライバーがアプリケーションにインポートされていることを確認してください。
まず、通知メッセージをパブリッシュおよびサブスクライブするためのパブリッシャーとサブスクライバーをそれぞれ作成する必要があります。
const redis = require('redis'); const publisher = redis.createClient(); const subscriber = redis.createClient(); // 发布消息 publisher.publish('notifications', '您有新的通知消息'); // 订阅消息 subscriber.subscribe('notifications'); subscriber.on('message', (channel, message) => { console.log(`收到来自 ${channel} 的消息: ${message}`); });
上記のコードを使用して、Redis パブリッシャーとサブスクライバーを作成します。パブリッシャーは publisher.publish
メソッドを介して指定されたチャネル notifications
にメッセージをパブリッシュし、サブスクライバーは subscriber.subscribe
を介してチャネルにサブスクライブします。新しいメッセージがチャネルにパブリッシュされると、サブスクライバーは message
イベントをトリガーし、受信したメッセージを出力します。
次のステップは、新しいニュースがあったときにユーザーにすぐに通知できるように、ユーザーの購読情報を保存することです。 Redis のハッシュ テーブル データ構造を使用して、ユーザー ID と対応するチャネル情報を保存できます。
const redis = require('redis'); const client = redis.createClient(); // 存储订阅信息 function subscribeUser(userId, channel) { client.hset('subscriptions', userId, channel); } // 获取订阅信息 function getUserSubscription(userId) { return new Promise((resolve, reject) => { client.hget('subscriptions', userId, (err, channel) => { if (err) { reject(err); } else { resolve(channel); } }); }); } // 删除订阅信息 function unsubscribeUser(userId) { client.hdel('subscriptions', userId); }
上記のコードでは、Redis の hset
メソッドを使用して、ユーザー ID をハッシュ テーブルのキーとして、チャネルを値として subscriptions# に保存します。 ## ハッシュ表。 。
hget メソッドを使用してユーザーのサブスクリプション チャネル情報を取得し、
hdel メソッドを使用してユーザーのサブスクリプション情報を削除できます。
const socket = new WebSocket('ws://localhost:3000'); // 订阅通知 function subscribeNotifications(userId) { socket.send(JSON.stringify({ event: 'subscribe', userId })); } // 接收消息 socket.onmessage = (event) => { const message = JSON.parse(event.data); if (message.event === 'notification') { console.log(`收到新的通知: ${message.content}`); } };
socket.send メソッドを通じてメッセージを購読するリクエストを送信します。新しいメッセージがクライアントにプッシュされると、
socket.onmessage イベントがトリガーされ、受信した通知の内容が出力されます。
以上がRedis と JavaScript を使用してシンプルなインスタント通知アプリケーションを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。