多くのブラウザには、GCMサービスが統合されていないことがわかりました。 たとえば、Opera、Vivaldi、Firefoxなどです。 SafariにはAPNSがありますが、それについては後ほど説明します。
また、今日、この機能の必要性の鮮明な例がありました-ユーザーの1人は、彼の仕事でプッシュが機能しなかったと不平を言いました:ウェブもアドオンもありませんでした。 問題は、すべての不要なポートが彼の仕事でブロックされていることです。 この場合、ソケットはポート443のプロキシnginxを介して機能し、フィルターによってブロックされません。
少し負荷テストを行い、すべての通知が正しい受信者に届くかどうかを確認する必要があります。 これらの通知は、ChromeとFirefoxで確認済みです。 検証は、エッジ(つまり、動作することを疑いますが)およびもちろんサファリで必要です。
まず、これは通知を「しばらく」オンにしてから、タブを閉じてオフにする便利な方法です。 他の方法とは異なり、この方法は閉じたタブまたはブラウザーウィンドウでは機能しません。 包含について、そしてアーキテクチャについて少し-猫の下で。
有効にする方法
右上隅の承認後 、質問アイコンがあります。 それをクリックして、「タブが閉じるまで有効にする」を選択してから、クロムで通知を有効にする必要があります。
どのように機能しますか?
記事に基づいて-PHPでWebsocketをゼロから作成する
ソケットに対するすべてのリクエストを監視するウィザードと、アラートの送信、ユーザーの追加または削除のコマンドを受信するためにredisサブスクリプションをリッスンするワーカーを作成しました。 さらに、マスターはワーカーとの共通ソケットをリッスンし、ワーカーはアラートを送信する必要がある場合にのみこのソケットに書き込みます。 ウィザードは、接続されたユーザーのソケットと接続用のソケットもリッスンします。 これにより、2つのプロセスでソケット、新しい通知を確認し、ロックなしで2つのプロセス間で通信できます。
ユニキャストはまだこの機能をサポートしていません。アルファ版の障害が発生した場合に、必要のない場所で個人的な重要なプッシュが飛び去らないように行われました。
どこに適用されますか?
- 一時的な通知方法
- サポートされていないブラウザで通知を受け取る
- 他のブラウザ用のさまざまなプラグイン、まず第一に、FF用のプラグインを作成します
- コンピューター用の固定クライアント
テスト方法
最初のセクションで説明したように、通知をオンにします。 次に、プロファイルでSocketPushにpingを2、3回試行します。 次に、以下のテストフォームを使用して管理を試み、テスト通知を作成します。 チャンネルを購読し、チャンネルからアラートがどのように送信されるかを確認します。
さまざまなブラウザーでの動作を説明します。 コメントまたはGoogle+コミュニティでできます
毎月300万件の通知
少しめちゃくちゃになりましたが、最後にアラートの数を1日5kから1日3kに減らしたことがわかりました。 現在、1日あたり100kに引き上げています。
PS。 テストされたサファリで-それは動作します。
しかし、Edgeでは動作するようで、動作しないようです。通知へのアクセスも要求しない、つまり、通知をまったくサポートしていないようです。
つまり、毎月300万件の通知を無料で送信できます。