1

サイトのユーザーが相互に送信するコメントのプッシュ通知を処理する最善の方法を考えています。

新しいコメントが送信されると、それは明らかに私のデータベースに保存されます。ただし、各ユーザーのコメントをmemcacheまたはセッションデータとして保存したいと思います(何が最善と考えられますか?)。これにより、ユーザーがサイトにアクセスしたり、ページを更新したりするたびに、未読の通知をすばやく取得して、データベース。

これを行う方法の 1 つは、ユーザーがプッシュ通知を受信したときに、AJAX 要求をサーバーに送り返して memcache/session データを更新することでした。

問題は、ユーザーがログインしていないか、現在サイトを使用していない場合にどうするかです。ユーザーが「受信」していなくても、AJAX 要求は送信されますか? それとも、AJAX リクエストは「待機」し、ユーザーがサイトに再度アクセスするとすぐに発生しますか? そもそも、この方法で通知を処理することは良い考えですか?

4

1 に答える 1

0

PHP セッションを小さく保ちたい。に大量のデータを詰め込むと、パフォーマンスが低下します。この目的には使用しません。私がそれを最もよく使用するのは、彼らが最後にコメントをチェックした時間を保存することです.

また、プッシュ通知も行っていません。クライアント ポーリングを使用しています。Websockets を使用してプッシュ通知を行うことはできますが、AJAX を使用することはできません (ロング ポーリングを使用して偽装することはできます)。ユーザーがログインしてブラウザを開いてサイトを開いている場合を除き、コメントをチェックするための AJAX 呼び出しを開始する Javascript は実行されません。

Websocket またはロング ポーリングでは、Apache に対してセカンダリ サーバーを使用する必要があります。それらは、Apache で利用可能な接続を使い果たします。

コメントを永続化する必要があると想定しているため、「忘れる」ことは Memcached の機能であることを覚えておいてください。Redis は、データを保持するように設定できます。memcached をパフォーマンスの向上として使用する場合は、データの整合性が重要かどうか (通知をドロップしても問題ない)、または常に通知を受け取るように堅牢性を設計する必要があるかどうかを判断する必要があります。

お役に立てれば。

于 2013-01-21T22:06:03.253 に答える