フォロー

Mastodonの通知が届く仕組み

大きく2種類あります。

・Webアプリケーションのプッシュ通知(デスクトップ通知)
・アプリのプッシュ通知

デスクトップ通知は、主にPC上のブラウザやPWAのための通知の仕組みです。つまりWebUIのための通知です。

ブラウズ中に出てくる通知の求めに対して許可すると、ブラウザの裏でServiceWorkerというプロセスが常駐するようになります。

この常駐プロセスによって、ブラウザを立ち上げていない状態でも通知を受け取れるようになります。

Mastodon側は、このServiceWorkerとやりとりしてユーザーの環境に通知表示を行います。

アプリのプッシュ通知は、主にモバイル環境のiPhoneやAndroidのための通知の仕組みです。

モバイル環境の場合、AppleやGoogleのサーバを経由して通知しなければなりませんが、Mastodonはこれに直接対応していません。

そこで、各アプリの作者は、ServiceWorkerに相当する中継サーバを設置し、それをMastodonに呼びだしてもらうようにします。そこからAppleやGoogleのサーバに通知することで、アプリからの通知が可能になります。

さて、通知が届かないとか、遅れてきたりするのが何故か。

ひとつは大元のMastodonサーバの不調。

タイムラインが遅延していたり、画像のアップロードが失敗するなど、様子がおかしいときは、Mastodonサーバ本体が原因かもしれません。

ひとつは中継サーバの不調。

アプリごとに中継サーバがあり、ここが過負荷になったりダウンしていると、通知が届かなくなります。

この場合、アプリ単位で、どのサーバの通知も届かなくなります。

アプリの提供にはAppleやGoogleに開発者登録するコストはかかりますが、あとはユーザーのスマホでアプリが動いているだけなので追加コストはかかりません。でも、この中継サーバはアプリ作者がコストをかけて運用しなければなりません。

ひとつはServiceWorkerの不調。

ブラウザの背後で動いているプロセスですが、これが何かおかしい。稀にですが、間違って多重起動していて通知が二重に来る、みたいな不具合がおきることもあるようです。

ServiceWorkerの不具合の場合、違う環境ではちゃんと通知が来たりします。PCは駄目、スマホのPWAはOKなど。

これは、PCやスマホを再起動したり、ServiceWorkerを一度削除するなどの、ユーザー側での対応が必要です。

ダジャレを検出しました(検出ワード: チュウ)

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。