FCMもntfyもメッセージサイズ上限はあるな。Misskey v10からアプリサーバに届くプッシュの内容を中継できない制限はどうしようもなさそう。DBに覚えてIDを送ってアプリからpullしてもらうくらいしかできない気がする
FCMもntfyもメッセージサイズ上限はあるな。Misskey v10からアプリサーバに届くプッシュの内容を中継できない制限はどうしようもなさそう。DBに覚えてIDを送ってアプリからpullしてもらうくらいしかできない気がする
acct.length=42, header.length=392, body.length=3078
Base128まで実装して、プロフが短めなら何とかFCM経由で送れるようになった
FCMで何文字送れるか。jsonのエスケープなどは考慮しなくてよさそう。UTF-8にエンコードした状態で送ってそう。
n=4050 c=a 1bytes
n=4050 c=\u0000 1bytes
n=4050 c=\u000a 1bytes
n=2025 c=\u00a9 2bytes
n=1350 c=\u82b1 3bytes
Twitterアプリ作者が逃げた先が某のアプリ開発だった、という事態を阻止するためにできることはせねばならん。それは地獄から地獄への綱渡りだ
アプリサーバにbrotli入れてみたけど、元が暗号化データなんで圧縮の効きは悪いな…。
acctHash.length=43, headerJsonString.length=456, bodyBase64.length=3766
ヘッダ部分などむしろ増えてしまっている。
めいすきーから来たのを中継しようとすると、必要なデータが
acctHash.length=43, headerJsonString.length=412, bodyBase64.length=4278
で、FCMに渡そうとすると怒られる。圧縮してからbase64するか…?
FirebaseMessagingException: Android message is too big
Misskey v10 はどんな巨大なメッセージを持ってたんだ…
このアカウントは、notestockで公開設定になっていません。
MastodonのAPIはバージョン判断まったくしなくても基本的な機能は使えるようになってて、すごくありがたみがある。安定したアプリが存在できるのはサーバのおかげ
このアカウントは、notestockで公開設定になっていません。
これでアプリサーバはヘッダとボディまとめてプッシュサーバに投げるだけにできるな。サーバ側でのデコードは不要になったんや(FCMのデータサイズ制限が緩和されたのが大きい)
https://github.com/tateisu/ProtPushProxy/tree/main/PushReceiverApp/app/src/main/java/jp/juggler/pushreceiverapp/push/crypt
やっとJavaで Content-Encoding: aes128gcm のデコードできた。WebPushのデコードなんて普通はブラウザ実装しないと作らないからサンプル少なすぎるしJavaの暗号プロバイダってどれも何かしら問題があって苦労する