FCMとは

FCMは、Googleが提供するメッセージングプラットフォームであり、サーバー上のアプリケーションから、モバイルアプリ(Android、iOS)やWebアプリケーションに対して通知やデータをリアルタイムに送信するために使用されるサービスのことです。

FCMの概要とリアルタイム通信における役割

FCM(Firebase Cloud Messaging、Firebaseクラウドメッセージング)は、モバイルアプリケーションの開発プラットフォームであるFirebaseの一部として提供されています。これは、以前のサービスであるGCM(Google Cloud Messaging)を置き換える形で提供されており、メッセージの信頼性と機能性が大幅に向上しています。

FCMの最も重要な役割は、アプリケーションが起動していなくても、あるいはネットワークに接続されていない状態から復帰した後でも、サーバーからクライアントデバイスへ確実にメッセージを届けることにあります。これにより、開発者は、ユーザーエンゲージメントを高めるための通知機能や、リアルタイムなデータ同期機能を手軽に実装できます。

主な目的は、サーバーとクライアントアプリケーション間のメッセージングチャネルを提供し、ユーザーへのタイムリーな情報提供と、アプリのバックグラウンド動作を効率的に制御することです。

FCMの主要な機能とメッセージの種類

FCMを通じて送信されるメッセージは、その用途に応じて主に以下の2種類に分類されます。

1. 通知メッセージ(Notification Messages)

  • 用途: ユーザーに直接表示されるアラート、バッジ、サウンドなどの標準的な通知を作成するために使用されます。
  • 特性:
    • FCMが自動処理: 通知メッセージのペイロード(データ本体)には、タイトル、本文、アイコンなどの情報が含まれ、FCM SDKがこれらの情報を自動的に処理し、デバイスのシステムトレイに表示します。
    • 簡素な実装: クライアント側のアプリコードをほとんど書くことなく、通知機能を実現できます。

2. データメッセージ(Data Messages)

  • 用途: クライアントアプリが独自のロジックに基づいて処理する必要があるカスタムデータを送信するために使用されます。
  • 特性:
    • アプリ側で制御: ペイロードはキーと値のペアで構成され、アプリのバックグラウンドプロセスがこれを受信し、データの更新、特定のアクションの実行など、独自の処理を実行します。
    • 表示なしの通信: ユーザーに通知を表示せず、アプリ間で静かにデータをやり取りする用途にも適しています。

FCMのアーキテクチャとメッセージ配信

FCMのメッセージ配信は、以下の主要なコンポーネントで構成されています。

1. 信頼性の高い接続

FCMのクライアントSDKがインストールされた各デバイスは、GoogleのFCMサーバーと永続的でバッテリー効率の良い接続を維持します。これにより、リアルタイムに近い速度でメッセージを受信することが可能になります。

2. 登録トークン(Registration Token)

  • 機能: 各デバイスまたはアプリインスタンスを一意に識別するために、FCMが発行するIDです。
  • 使用方法: サーバー上のアプリケーションは、この登録トークンを宛先としてメッセージを送信します。クライアントアプリは、自身で生成されたトークンを開発者サーバーに送信し、そこで管理されます。

3. メッセージのルーティング

FCMサーバーは、開発者のアプリケーションサーバーから送信されたメッセージを、登録トークンやトピック(Topic)に基づいてルーティングします。

  • 単一デバイス: 特定のトークンを持つ単一のデバイスにメッセージを送信します。
  • トピック配信: 購読(サブスクライブ)したすべてのデバイスに、同じメッセージをブロードキャストします。これにより、特定のイベントやニュースの即時配信が容易になります。

4. メッセージのペイロード

メッセージの最大サイズは、データメッセージと通知メッセージを問わず、最大で4KBに制限されています。このため、大規模なデータやファイルを送るのには適しておらず、メッセージはあくまで通知やデータ更新のトリガーとして使用され、実際のデータ本体は、別途APIコールなどで取得することが推奨されます。

関連用語

ルーティングレイヤー | 今更聞けないIT用語集
トークン | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。