本文にスキップする
Version: 7.0

短いデータ送信

LINE Planetは、通信中に限られたサイズのデータ(「短いデータ」)をピアに送信できるAPIを提供します。このページでは、通話中に短いデータを送受信する方法について説明します。

対応する通話タイプ対応するSDKバージョン
1対1通話、グループ通話(カンファレンス)すべてのバージョン

共通事項

通話タイプに関係なく、短いデータの送信には以下の事項を適用します。

サイズの制限

短いデータを送信するメソッドは、データ自体と、データタイプを引数として受け取ります。データタイプおよびデータの最大サイズは次のとおりです。

  • データタイプ:100バイト(null終端文字を含む)
  • データ:800バイト

レート制限

1秒あたり1回の送信のみ許容されます。

短いデータの送信結果を得る

LINE Planetで何度も再試行した後もデータ送信に失敗する場合があります。結果ハンドラーコールバックを使用すると、非同期でデータ送信結果を確認できます。

1対1通話

1対1通話では、次のように短いデータを送受信できます。

短いデータを送信する

通話相手に短いデータを送信するには、PlanetKitCallsendShortData()を使用します。

fun sendShortDataExample(call: PlanetKitCall, type: String, data: String) {
val byteArray = data.toByteArray(Charsets.UTF_8)

call.sendShortData(type, byteArray, object : PlanetKitSendShortDataResultCallback {
override fun onResult(isSuccess: Boolean, failReason: PlanetKitSendShortDataFailReason, userdata: Any?) {
if (isSuccess) {
Log.d(TAG, "sendShortData succeeded: type=$type, data=$data")
} else {
Log.e(TAG, "sendShortData failed: $failReason")
}
}
})
}

受信した短いデータを処理する

相手はCallListeneronShortDataReceivedを使用して短いデータを受信できます。

// Implement related callbacks of the CallListener interface
// MakeCallListener for caller and AcceptCallListener for callee
private val makeAcceptCallListener = object : MakeCallListener, AcceptCallListener {
...

override fun onShortDataReceived(call: PlanetKitCall, shortData: PlanetKitShortData) {
// This is called when short data is received from the peer.
val receivedData = String(shortData.data, Charsets.UTF_8)
Log.d(TAG, "Received short data: type=${shortData.type}, data=$receivedData")
// Write your own code here to handle the received data.
}
}

グループ通話

グループ通話では、特定のピアまたはすべてのピアに短いデータを送信できます。

特定のピアに短いデータを送信する

特定のピアに短いデータを送信するには、PlanetKitConferencesendShortData(PlanetKitUser, String, ByteArray, Any?, PlanetKitSendShortDataResultCallback?)を使用します。

fun sendShortDataToSpecificPeerExample(conference: PlanetKitConference, targetUser: PlanetKitUser, type: String, data: String) {
val byteArray = data.toByteArray(Charsets.UTF_8)

conference.sendShortData(targetUser, type, byteArray, object : PlanetKitSendShortDataResultCallback {
override fun onResult(isSuccess: Boolean, failReason: PlanetKitSendShortDataFailReason, userdata: Any?) {
if (isSuccess) {
Log.d(TAG, "sendShortData to ${targetUser.serviceId}@${targetUser.userId} succeeded: type=$type, data=$data")
} else {
Log.e(TAG, "sendShortData failed: $failReason")
}
}
})
}

すべてのピアに短いデータを送信する

すべてのピアに短いデータを送信するには、PlanetKitConferencesendShortData(String, ByteArray, Any?, PlanetKitSendShortDataResultCallback?)を使用します。

fun sendShortDataToAllPeersExample(conference: PlanetKitConference, type: String, data: String) {
val byteArray = data.toByteArray(Charsets.UTF_8)

conference.sendShortData(type, byteArray, object : PlanetKitSendShortDataResultCallback {
override fun onResult(isSuccess: Boolean, failReason: PlanetKitSendShortDataFailReason, userdata: Any?) {
if (isSuccess) {
Log.d(TAG, "sendShortData to all peers succeeded: type=$type, data=$data")
} else {
Log.e(TAG, "sendShortData failed: $failReason")
}
}
})
}

受信した短いデータを処理する

ピアはConferenceListeneronShortDataReceivedを通じて短いデータを受信できます。

// Implement related callbacks of the ConferenceListener interface
private val conferenceListener = object : ConferenceListener {
...

override fun onShortDataReceived(conference: PlanetKitConference, sender: PlanetKitUser, shortData: PlanetKitShortData) {
// This is called when short data is received from a peer in the conference.
val receivedData = String(shortData.data, Charsets.UTF_8)
Log.d(TAG, "Received short data from ${sender.serviceId}@${sender.userId}: type=${shortData.type}, data=$receivedData")
// Write your own code here to handle the received data.
}
}

短いデータ送信の失敗理由

結果ハンドラーのコールバックとして渡されるPlanetKitSendShortDataFailReason列挙型を通じて、短いデータ送信の結果と失敗理由を確認できます。考えられる失敗の理由は次のとおりです。

説明
NONE短いデータが正常に送信されました。
INVALID_PARAMETER1つ以上の入力パラメーターが無効です(例:データサイズが0)。
TOO_LONG_DATA_TYPEデータタイプが許容された最大長さを超えています(null終了文字を含めて100バイトを超過)。
TOO_LONG_DATAデータペイロードが許容された最大サイズを超えています(800バイトを超過)。
TOO_FREQUENT短いデータが許容回数を超えて送信されました(レート制限を超過)。1秒あたり1回の送信のみ許容されます。
TIMEOUTタイムアウトにより送信が失敗しました。

関連API

短いデータの送信に関連するAPIは、以下のとおりです。

共通

列挙型

1対1通話

メソッド

イベント

グループ通話

メソッド

イベント