仕組み
LINE Planetは、クラウド基盤のリアルタイムなサービスとしてのコミュニケーションプラットフォーム(CPaaS)です。アプリケーションは、SDKを用いてLINE Planet Cloudと連携し、連携後にはLINE Planet Cloudを通じて音声通話やビデオ通話、ライブ配信、チャットなどを行うことができます。
基本トポロジー
LINE Planetとアプリケーションのトポロジーを通話タイプ別に見てみましょう。サービス開発会社側で実装が必要な領域は、下図にて黄色の背景色で示しています。
1対1通話
下図は、1対1通話の際にLINE Planetとアプリケーションのシンプルなトポロジーです。図からわかるように、LINE Planetとアプリケーションのほかに、着信を通知するためのプッシュシステム(push system)が必要です。プッシュシステムは、モバイルプラットフォームが提供するシステム、あるいは独自のシステムを使用できます。
アプリケーションには、発信者と受信者のクライアント(アプリクライアント)とアプリケーションサーバー(アプリサーバー)が含まれているため、サービス開発会社側で実装する必要があります。独自のプッシュシステムを使用する場合もまた、サービス開発会社側の実装になります。
1対1通話の際にLINE Planetとアプリケーションは、以下の順で通信します。
- 発信者と受信者のアプリクライアントが、アプリサーバーにぞれぞれのデバイスを登録します。
- 発信者のアプリクライアントがLINE Planet Cloudに1対1通話をリクエストします。(
PlanetKit.makeCall
の呼び出し) - LINE Planet Cloudがアプリサーバーに通話通知を送ります。
- アプリサーバーがプッシュシステムにプッシュをリクエストします。
- プッシュシステムが受信者のアプリクライアントにプッシュ通知を送ります。
グループ通話
下図は、グループ通話の際にLINE Planetとアプリケーションのシンプルなトポロジーです。
グループ通話の際にLINE Planetとアプリケーションは、以下の順で通信します。
- 最初の参加者が新しいグループ通話への参加をリクエストします。 (
PlanetKit.joinConference
の呼び出し)- LINE Planet Cloudでグループ通話ルームが作成され、最初の参加者がグループ通話に参加します。
- LINE Planet CloudはApp Serverに、グループ通話の開始と最初の参加者がグループ通話に参加したことを知らせます。
- 残りの参加者がこのグループ通話への参加をリクエストします。 (
PlanetKit.joinConference
の呼び出し)- 各参加者がそのグループ通話に参加します。
- LINE Planet CloudはApp Serverに、各参加者がグループ通話に参加したことを知らせます。
LINE Planetのインターフェース
リアルタイム通信において、LINE Planetとそれを使用するアプリケーションは、各自の役割を担います。LINE Planetは、リアルタイム通話を処理するクラウドと機能の開発に必要なツールを提供します。アプリケーションは、LINE PlanetのAPIを呼び出して必要な機能を設定、使用します。
LINE Planetは、サーバーAPIとクライアントAPIを提供します。サービス開発会社では、下図のように該当するAPIを呼び出すクライアント(アプリクライアント)とサーバー(アプリサーバー)を実装する必要があります。
アプリケーション側ではサーバーとクライアントを実装したうえで、対応するAPIを呼び出します。アプリケーションのサーバーであるアプリサーバーは、プッシュシステムなどを利用して受信者に着信があることを通知する役割を担い、アプリケーションのクライアント、つまりアプリクライアントは、ユーザーのリクエストに応じて電話をかけたり、受けたり、切ったりします。
アプリクライアントとアプリサーバーはそれぞれ次のようにAPIを使用します。
- アプリクライアントは、SDKが提供するクライアントAPIを使用してユーザーのリクエストを処理し、各リクエストに関連するイベントを受け付けます。
- 1対1通話では、アプリクライアントはクライアントAPIを使用して電話をかけたり切ったりします。
- グループ通話では、アプリクライアントはクライアントAPIを使用してルームに参加するか、ルームから退出します。
- 1対1通話/グループ通話の両方で、アプリクライアントは画面共有やデータセッションなどの追加機能のためにクライアントAPIを使用することができます。
- アプリサーバーは、サーバーAPIを使用してサーバー側のリクエストを処理し、通話関連のイベントを受け付けます。
- グループ通話では、アプリサーバーはアプリケーション制御メッセージの送信、参加者の強制退出などの機能のためにサーバーAPIを使用することができます。
- サーバーコールバックは、1対1通話の受信または終了、グループ通話での参加者の参加または退出などのイベントを知らせるために使用されます。
詳しくは、PlanetKit、サーバーAPI、アプリサーバーの役割を参照してください。
PlanetKit
LINE PlanetのクライアントAPIは、アプリクライアントが通話機能を実装する際に使用します。LINE Planetでは、このAPIをさらに使いやすくするために、PlanetKitという広く使われているプラットフォームに対応するSDKを提供します。PlanetKit SDKが対応するプラットフォームは、以下のとおりです。
- Android
- iOS/macOS
- Windows
- Web
Web向けのPlanetKitは、WebPlanetKitと呼ばれることもあります。
使用する前にPlanetKitのシステム要件をご確認ください。