Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
livekitAndroidXuningTest
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
davidliu
2022-01-25 21:33:44 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2022-01-25 04:33:44 -0800
Commit
49905d9a507a32e89b6fb0e4a840881bd5880090
49905d9a
1 parent
2dfdbe62
Send client info on connect (#48)
* Fix tests * Fix github actions * send client info
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
62 行增加
和
17 行删除
livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt
livekit-android-sdk/src/main/java/io/livekit/android/stats/ClientInfo.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt
查看文件 @
49905d9
package io.livekit.android.room
import android.net.Uri
import com.google.protobuf.util.JsonFormat
import com.vdurmont.semver4j.Semver
import io.livekit.android.ConnectOptions
...
...
@@ -7,6 +8,7 @@ import io.livekit.android.Version
import io.livekit.android.dagger.InjectionNames
import io.livekit.android.room.participant.ParticipantTrackPermission
import io.livekit.android.room.track.Track
import io.livekit.android.stats.getClientInfo
import io.livekit.android.util.CloseableCoroutineScope
import io.livekit.android.util.Either
import io.livekit.android.util.LKLog
...
...
@@ -89,22 +91,8 @@ constructor(
token: String,
options: ConnectOptions
): Either<LivekitRtc.JoinResponse, Unit> {
var wsUrlString = "$url/rtc" +
"?protocol=$PROTOCOL_VERSION" +
"&$CONNECT_QUERY_TOKEN=$token" +
"&sdk=$SDK_TYPE" +
"&version=${Version.CLIENT_VERSION}"
isReconnecting = false
wsUrlString += "&auto_subscribe="
wsUrlString += if (options.autoSubscribe) {
"1"
} else {
"0"
}
if (options.reconnect) {
wsUrlString += "&reconnect=1"
isReconnecting = true
}
val wsUrlString = "$url/rtc" + createConnectionParams(token, getClientInfo(), options)
isReconnecting = options.reconnect
LKLog.i { "connecting to $wsUrlString" }
...
...
@@ -125,6 +113,36 @@ constructor(
}
}
private fun createConnectionParams(
token: String,
clientInfo: LivekitModels.ClientInfo,
options: ConnectOptions
): String {
val queryParams = mutableListOf<Pair<String, String>>()
queryParams.add(CONNECT_QUERY_TOKEN to token)
if (options.reconnect) {
queryParams.add(CONNECT_QUERY_RECONNECT to 1.toString())
}
val autoSubscribe = if(options.autoSubscribe) 1 else 0
queryParams.add(CONNECT_QUERY_AUTOSUBSCRIBE to autoSubscribe.toString())
// Client info
queryParams.add(CONNECT_QUERY_SDK to "android")
queryParams.add(CONNECT_QUERY_VERSION to clientInfo.version)
queryParams.add(CONNECT_QUERY_PROTOCOL to clientInfo.protocol.toString())
queryParams.add(CONNECT_QUERY_DEVICE_MODEL to clientInfo.deviceModel)
queryParams.add(CONNECT_QUERY_OS to clientInfo.os)
queryParams.add(CONNECT_QUERY_OS_VERSION to clientInfo.osVersion)
return queryParams.foldIndexed("") { index, acc, pair ->
val separator = if(index == 0) "?" else "&"
acc + separator + "${pair.first}=${pair.second}"
}
}
/**
* Notifies that the downstream consumers of SignalClient are ready to consume messages.
* Until this method is called, any messages received through the websocket are buffered.
...
...
@@ -495,7 +513,7 @@ constructor(
*/
fun close(code: Int = 1000, reason: String = "Normal Closure") {
isConnected = false
if(::coroutineScope.isInitialized) {
if
(::coroutineScope.isInitialized) {
coroutineScope.close()
}
currentWs?.close(code, reason)
...
...
@@ -525,6 +543,14 @@ constructor(
companion object {
const val CONNECT_QUERY_TOKEN = "access_token"
const val CONNECT_QUERY_RECONNECT = "reconnect"
const val CONNECT_QUERY_AUTOSUBSCRIBE = "autoSubscribe"
const val CONNECT_QUERY_SDK = "sdk"
const val CONNECT_QUERY_VERSION = "version"
const val CONNECT_QUERY_PROTOCOL = "protocol"
const val CONNECT_QUERY_DEVICE_MODEL = "device_model"
const val CONNECT_QUERY_OS = "os"
const val CONNECT_QUERY_OS_VERSION = "os_version"
const val SD_TYPE_ANSWER = "answer"
const val SD_TYPE_OFFER = "offer"
...
...
livekit-android-sdk/src/main/java/io/livekit/android/stats/ClientInfo.kt
0 → 100644
查看文件 @
49905d9
package io.livekit.android.stats
import android.os.Build
import io.livekit.android.BuildConfig
import io.livekit.android.room.SignalClient
import livekit.LivekitModels
internal fun getClientInfo() = with(LivekitModels.ClientInfo.newBuilder()) {
sdk = LivekitModels.ClientInfo.SDK.ANDROID
protocol = SignalClient.PROTOCOL_VERSION
version = BuildConfig.VERSION_NAME
os = "android"
osVersion = Build.VERSION.RELEASE ?: ""
val vendor = Build.MANUFACTURER ?: ""
val model = Build.MODEL ?: ""
deviceModel = ("$vendor $model").trim()
build()
}
...
...
请
注册
或
登录
后发表评论