この質問はもともと Google Cloud Messaging (GCM) に関するものでしたが、現在は GCM に代わる新しい Firebase Cloud Messaging (FCM) にも当てはまります。
「通知」辞書が含まれている場合の GCM ペイロードのサイズを計算する方法を知りたいです。
Android 向けの Google Cloud Messaging サービスを試しています。ドキュメントの一部には、最大 4KB のデータを送信できると記載されていますが、ここでは「通知メッセージには最大 2KB のペイロードを含めることができます」と記載されています。
いくつかのテストを行うと、4KB のデータで満たされた「データ」ペイロードを含むメッセージを送信でき、サーバーは期待どおりにエラーなしでそれらを受け入れました。
ただし、「通知」ペイロードを使用すると、2KB を超えるデータを含むメッセージを送信でき、サーバーがエラーを返さないことがわかりました。そのようなメッセージは大きすぎると思っていました。
「通知」ペイロードは許可された 4KB を「データ」ペイロードと共有しますが、同じ方法ではないことがわかりました。「データ」ペイロードでは、キーと値のサイズを加算してサイズを計算できます。「通知」ペイロードは、含まれるキーと値のサイズよりも多くのスペースを占有します。
「通知」辞書が含まれている場合、ペイロードのサイズを事前に計算するにはどうすればよいですか?