iMast icon indicating copy to clipboard operation
iMast copied to clipboard

プッシュ通知の処理をもう少しまともにする

Open rinsuki opened this issue 1 year ago • 0 comments

現状…

  • imast-backend 側で WebPush を受け取ると /api/v1/notifications/:id を叩く
    • この情報は端末アカウントを超えて共有されないので、回数はユーザーが登録した回数分になる
    • ので、例えば押し入れにしまったままだったり下取りに出したりした iPhone 5s 分のプッシュ通知の取得が一生走っている可能性がある
  • iMast 側でもプッシュ通知を受け取ると /api/v1/notifications/:id を叩く
    • これは実際に受け取れた端末分

これだとバズった時とかSidekiq全再試行とかした時にレートリミットで死ぬ (1通知あたり2*端末分取得が走る) ことがわかったのでなんとかしたい

  • imast-backend で情報取るのをやめる
    • 特にメモリが少ない古い端末だと Notification Service Extension が発火しない可能性があったはず
    • なので imast-backend で情報入れないとのっぺらぼうな通知になる可能性がある…
    • オプトインが丸いか?
  • iMast が imast-backend が取った情報を imast-backend から貰うようにする
    • とはいえ APNs のペイロードに乗る大きさでは恐らくないので、一時トークンを発行してそれを渡して取るみたいな感じになりそう?
    • でもあんまり一時的にでも機密かもしれないデータを自分で保存するのは微妙
      • 適当に暗号化したデータだけ持っておいて APNs で鍵も送ればいい?
    • いつまで持てばいいんですか?という問題もあるし
  • more...

rinsuki avatar Nov 26 '22 09:11 rinsuki