ディレクトリ
メッセージ通知システムとは何ですか
メッセージ通知システムは、名前が示唆するように、メッセージ処理システムを伝える通知します。目的は、ユーザーが情報と思い出し及び処理する必要性を取得できるようにすることです。
メッセージ通知サービスは完全なメッセージに「メッセージ」機能「内のプラットフォーム」は、タイプがピアメッセージにメッセージング、ピアを購読マイクロ位置付けます。例えば、通知システム、プライベートメッセージ、メッセージクラスのための@
- 全ニュース
システムの通知、イベント通知、発表や他の管理者ユーザーは、すべてのニュースを受信します
- ニュースカテゴリに登録
このようなデータを更新する際の懸念ユーザデータのクラスには、メッセージがユーザーに送信されます。例えば、大きな懸念Vのマイクロブログで、公共の数字は、よく知られた作家の列にサブスクライブ
- ポイントニュース
ユーザによる添加は、ユーザを操作した後、システムを操作するユーザにメッセージを送信します。点のような、例えば、封筒赤。
システムの機能
メッセージ通知 | |
---|---|
コンテンツ配信 | テキストは、ハイパーリンクは、何より、写真によって補いません。 |
コア需要ポイント | 高い送達速度は、「この子は他の当事者に通知する方法を見つけなければなりません。」というメッセージを必要と 遅延を要求しないでください。 |
システム構築費 | 一般的にのみテキストメッセージ、低ストレージコストを節約します。ユーザーが自由に調整量に基づいて、サーバークラスタを構成することができます。 |
対話的 | メッセージは、一般的になるように設計された「通知のみ、応答なし。」 |
通信
ここでは、リアルタイム/ほぼリアルタイムのデータ交換を実現するためにどのように、前面と背面の間の通信の方法を選択する手段、バックエンドを達成するために、全体として考慮されていません:
3通りの方法でコミュニケーションを導入する必要があります。
ショート接続
各クライアントとサーバーの通信に一度、あなたが接続を確立し、通信が切断終了します。
通常、TCP上で動作応答プロトコル、 - HTTPは単純な要求です。HTTP / 1.0の使用デフォルトの短いTCPコネクション。
ロング接続
接続が確立された後、連続してデータを複数回送信することができます1、切断までの二つの側面です。
長時間の使用からのHTTPバージョン1.1基本的なTCP接続。
HTTPプロトコルを使用して長い接続、コードは、レスポンスヘッダに追加される:接続:キープアライブ
ロングとショートの接続コネクタの違い
通信プロセス
短い接続:接続を作成 - >送信データ - >接続長閉じるために接続:接続の作成 - >送信データ - >接続されたまま - >送信データ - > ...... - >近隣接続
該当シーン
短い接続:同時容量、データの頻繁なケースを交換
長い接続:ポイント通信にデータを頻繁に交換し、点
WebSocketの契約
プロトコルは何であるのWebSocket
- HTML5のWebSocketは、単一のTCP接続を介して全二重通信を開始することによって提供されたプロトコルです。
- どのような全二重:フル(全
二重)通信は、伝送用語です。両方がシンプレックス通信能力に2つが結合に相当する、双方向のデータ通信の同時送信を可能にします。送信信号を同時にすることができる全二重双方向のことをいいます。B→Aながら、双方向の通りのようなものであることをA→B手段。 - シンプレクスは、ちょうど車のように一方通行でのみ送信することができない当事者B、当事者Aと当事者Bに送信情報を許可されています。
- 参考:https://baike.baidu.com/item/%E5%85%A8%E5%8F%8C%E5%B7%A5/310007?fr=aladdin
- クライアントにデータを送信するサーバは、典型的な使用シナリオプロトコル用WebSocketであります
3つの通信方式の長所と短所
長所と短所次のように:
ショートポーリング | ロングポーリング | WebSocketを | |
---|---|---|---|
ブラウザのサポート | ほとんどすべての最新ブラウザ | ほとんどすべての最新ブラウザ | IE 10+エッジのFirefox 4+クロム4+のSafari 5+オペラ11.5+ |
サーバー負荷 | 以下のCPU、より多くのメモリリソースと帯域幅リソース | 従来のポーリングでに似ていますが、少ない帯域幅を占有 | 必要はありませんイベントの数を測定するために、サイクル(ロングポーリング)、CPUおよびメモリリソースは、クライアントの数を測定することではなく、クライアントを待つありません。3つの方法で最高のパフォーマンス。 |
クライアントの負荷 | より多くのメモリリソースと要求の数 | 伝統的なポーリングと同様に | 同サーバー送信されるイベント |
遅延 | 遅延要求間隔に応じて、非リアルタイム、 | 伝統的なポーリングと | 実時間 |
実装の複雑 | 非常に単純な | これは非常にシンプルを達成するために、クライアントとサーバが必要です | ソケットおよび手順は、追加のポートを実装する必要があり、クライアントシンプル |
WebSocketのでは、ブラウザとサーバはハンドシェイクを完了する必要がある、あなたは、永続的な接続、および双方向のデータ伝送を作成することができます。
ポーリングモード(のsetInterval)のAjaxのタイミング、より多くのサーバリソースや帯域幅保存のWebSocketに比べて技術的なプッシュ機能の実装では、。
サーバのパフォーマンス、リアルタイムの考慮事項、のWebSocketプロトコルを使用してフロントとリアエンド通信のため。