2016-11-29 11 views
1

私のAngularJSアプリ内の通知をチェックするための推奨戦略はありますか?通知チェックの戦略

「通知」私は、ユーザーがアプリケーションにログインしたときに表示されるメッセージアラートについて説明します。

私の計画は、以下に示すように、アプリのナビゲーションバーにある未読の通知をユーザに通知することです:

NavBar notifications

マイアプリは(のNode.js、エクスプレス、MongoDBのを使用して書かれた)私のRESTfulなAPIと通信し、私は新しい通知がMongoDBコレクションに書かれ、その通知が意図されているユーザーの詳細があると予想しています。

私が確信しているのは、AngularJSアプリケーションがユーザーがログオンすると通知を確認する方法です。ユーザーがあるパスから別のパスにナビゲートするたびに私のAPIを未読の通知にすることはできますが、単純なように思えますし、ユーザーがページを見ている間に新しい通知が発生しても機能しません。

もう1つの方法は、30秒ごとにチェックするタイマーシステムです。しかし、これは、ユーザーのための新しい通知がないとき、私のAPIを不必要にポーリングすることになります。

おすすめの戦略があるのだろうか。ご協力いただきありがとうございます。

答えて

1

ポーリングは解決策ですが、非常に非効率的です。あなたの問題に対する解決策はウェブソケットです。 Websocketsは、クライアントとサーバーの間で全二重の双方向通信を提供するテクノロジです。したがって、サーバーから接続されたクライアントにメッセージを送信することができます。あなたのサーバは、接続されたクライアントの配列を管理しており、メッセージを送信する必要のあるIDを知るだけで済みます。

あなたのスタックのために私が来た最高の解決策はSocket.ioですhttp://socket.io それはまた、クールな機能があります。たとえば、モデルを「監視」することができます。したがって、データベースのモデル変更、たとえばユーザープロファイルの更新が行われた場合、イベントをトリガーして自動的にクライアントにメッセージを送信できます。このクライアントは通知を取得して処理し、アラートアイコンにバッジを置くなどの操作を行います。

希望はあなたにとって役に立ちます。

+0

素晴らしい、thanks @Jorge。ソケットはちょうど私が必要としているように見え、私はsocket.ioについて読んできました。それは理想的です。どうもありがとう。 – Mook5ter