web-dev-qa-db-ja.com

プッシュAPIとサーバー送信イベントの違いは何ですか?

ドキュメントから、 Push APIServer Sent Events はどちらも半二重であることがわかりましたが、なぜ同じ機能に対して2つの異なるテクノロジーがあるのでしょうか。 Push APIにもっと重要なものはありますか?

23
Rishul Matta

Push APIを使用すると、サーバーはサービスワーカーに依存しているため、サイトが開いていない場合でもクライアントに通知を送信できます。

SSE(またはWebSocket)は、ユーザーがサイトを使用している限り機能します。

ServiceWorker CookbookWeb Pushセクションにいくつかの例(ドキュメント付き)があり、これをよりよく理解するのに役立ちます。

15
Marco

サーバー送信イベントを使用してWebサイトに直接接続するのは、かなり簡単です。

Webプッシュテクノロジーははるかに複雑で、ユーザーのブラウザーはブラウザーベンダーのプッシュサーバーへの1つの接続を維持します。このサーバーは、Webサイトからすべてのプッシュを収集して配信します(それらを多重化します)。メッセージはサードパーティのサーバーを経由するため、暗号化する必要があります。 Push APIを使用するには、(クライアント側で)ブラウザー固有のベンダーのエンドポイントURLを取得し、公開暗号化キーを生成して、使用するためにサーバーに送り返します。次に、サーバーでプッシュするときに、キーを使用してメッセージを暗号化し、エンドポイントにプッシュします。

Webプッシュに関する一般情報

Firefoxは、プッシュメッセージが開いている限り受信するために、プッシュサービスへのアクティブな接続を維持します。

これがWebプッシュの主な利点です。ユーザーがブラウザーを開いたときに通知を配信できるため、ユーザーはサイトにアクセスする必要がありません。欠点は、このサブスクリプションについてユーザーから許可を得る必要があることです。もう1つの欠点は、現在広く普及しているとは言えないことです サポートされています

Push APIに関する技術情報

9
user