私はユーザーであり、長い間苦しんできた問題に対する解決策をすでに持っています。なぜその解決策が効果的なのか、専門家の意見を求めて書いています。
私は中国に住んでおり、Androidスマートフォンを使い、WhatsAppや微信などの禁止されているアプリを利用しています。これらのアプリはVPNを必要とし、しっかり動作します。しかし、長い間、これらのアプリからのプッシュ通知を受け取ることができませんでした。自動起動やバックグラウンド使用をオンにしていてもです。また、Google PlayサービスもVPNを経由しなければなりませんでした(スプリットトンネリング)。
時々、WiFiを切ったときやWiFiをつけたとき、またVPNを切ったときに、急に過去の未読通知を一斉に受け取ることがありました。これはヒントかもしれません。Signalの場合、VPNを切ると「新しいメッセージをダウンロード中」という通知が表示され、VPNを再びオンにするとそのメッセージを見ることができました。
最近、これを解決しようと非常に意欲的になり、FCMについて調べていると、About FCM messages | Firebase Cloud Messaging というページにたどり着きました。そこには以下のように書かれています。
“VPNが設定された場合、私たちは暗号化された接続(WiFiやLTEのベースネットワーク上)を通じてVPNをバイパスし、信頼性とバッテリー効率を確保します…VPNがバイパス可能に設定されていない場合、Firebase Cloud Messagingはサーバーへの接続にVPNネットワークを使用します。”
驚いたことに、多くのVPNクライアントはデフォルトでバイパスを許可しています。そこで考えました。VPNの設定をバイパスを禁止するようにすればどうなるか?これが効果的でした! 現在、WhatsAppや微信のようなVPNを通じて動作するアプリだけでなく、中国国内のアプリのプッシュ通知も受け取れます。
しかし、何が起きたのか?問題が解決した今、本当に知りたいのはなぜでありどうやってなのです。2つの可能性を考えています。ここにいる専門家の皆さんが私の好奇心を満たしてくれると期待しています。
-
FCMは単純にインターネットに接続できなかった、または中国で機能させるためにバイパスしたVPNを選択したため。
-
FCMはインターネットに接続できたが、禁止されているアプリはVPNを通じてチャンネルされていたのに対し、FCMはVPNをバイパスしたため、通信の不一致が発生し、プッシュ通知が失敗した。
追記 2024/2/6: *.とラベル付された行を追加しました。