2017-06-08 21 views
2

私はWebアプリケーションを持っており、ユーザーに通知が届いていることを確認する必要があります。私は、通知アイコンが新しいものを持っているときの状態を変更するようにしたい。プッシュ通知クロスブラウザを実装する方法は?

基本的には、APIエンドポイントが現在のユーザーの状態を更新し、フロントエンドが状態を変更するときにリッスンする必要があります。

私はそのエンドポイントをオブザーバブルとして、フロントエンドをオブザーバとして考えましたが、それが私が必要とするものに収まるかどうかはわかりません。

アイデア?

+1

チェックアウト[socket.io](https://socket.io/) –

答えて

2

Socket.ioのようなWebソケット実装を使用することをお勧めします。

Socket.ioには多くの選択肢がありますが、主な利点は、古いブラウザでは複数のフォールバックがあることです。したがって、たとえばWebソケットが利用できない場合、または動作しない場合、AJAX long pollingが試行されます。この方法で、一度に作成されたブラウザをサポートすることもできます。誰もWebソケットが何であるかを知りませんでしたが、APIはそのままです。

最近のブラウザを扱うだけでよいことが分かっている場合は、代わりにもっと軽量の代替方法を使用することができます。 ws

純粋にHTTPに基づいており、追加のプロトコルを必要としない全く異なるものをお探しの場合は、HTML5 Server-sent eventsに興味があるかもしれません。彼らは素晴らしいですが、Webソケットとは対照的に、双方向ではありません。currently not supported in IE and Edgeです。彼らにはまたいくつかの欠点があります。たとえば、カスタムヘッダーをSSEリクエストに追加することはできません。

HTTP2の場合、特にStreams APIのようなことが起こっていることを考慮すると、将来的にWebソケットにどの程度の影響が残るか疑問に思うかもしれません。次に、純粋なHTTPを使用して基本的にすべてを解決することができます。これにはいくつかの利点もあります。 Streams APIはここにはありませんので、待ちましょう...

+0

これを[Notification API](https: – Code4R7

+0

Streams APIについて読んだことはありません。私はObservablesを考えました、どう思いますか? –

+0

オブザーバブルとストリームは2つの異なるものです。オブザーバブルはオブジェクトであり、観測されますが、ストリームはサーバからクライアントへのデータ転送を処理し、逆も同様です。だから、少なくともこの文脈では、それらを比較するのはリンゴとオレンジです。 –

関連する問題