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-24 22:47:52 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2022-01-24 05:47:52 -0800
Commit
5e2dd0bc0c0274876686080102b888344c5dd6fc
5e2dd0bc
1 parent
c7eea0fa
handle refresh token message (#46)
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
33 行增加
和
6 行删除
livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt
livekit-android-sdk/src/test/java/io/livekit/android/room/RTCEngineMockE2ETest.kt
livekit-android-sdk/src/test/java/io/livekit/android/room/SignalClientTest.kt
protocol
livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt
查看文件 @
5e2dd0b
...
...
@@ -609,6 +609,10 @@ internal constructor(
listener?.onSubscriptionPermissionUpdate(subscriptionPermissionUpdate)
}
override fun onRefreshToken(token: String) {
sessionToken = token
}
//--------------------------------- DataChannel.Observer ------------------------------------//
override fun onBufferedAmountChange(previousAmount: Long) {
...
...
livekit-android-sdk/src/main/java/io/livekit/android/room/SignalClient.kt
查看文件 @
5e2dd0b
...
...
@@ -92,7 +92,7 @@ constructor(
): Either<LivekitRtc.JoinResponse, Unit> {
var wsUrlString = "$url/rtc" +
"?protocol=$PROTOCOL_VERSION" +
"&
access_token
=$token" +
"&
$CONNECT_QUERY_TOKEN
=$token" +
"&sdk=$SDK_TYPE" +
"&version=${Version.CLIENT_VERSION}"
isReconnecting = false
...
...
@@ -339,12 +339,12 @@ constructor(
allParticipants: Boolean,
participantTrackPermissions: List<ParticipantTrackPermission>
) {
val update = LivekitRtc.
UpdateSubscriptionPermissions
.newBuilder()
val update = LivekitRtc.
SubscriptionPermission
.newBuilder()
.setAllParticipants(allParticipants)
.addAllTrackPermissions(participantTrackPermissions.map { it.toProto() })
val request = LivekitRtc.SignalRequest.newBuilder()
.setSubscriptionPermission
s
(update)
.setSubscriptionPermission(update)
.build()
sendRequest(request)
...
...
@@ -473,6 +473,9 @@ constructor(
LivekitRtc.SignalResponse.MessageCase.SUBSCRIPTION_PERMISSION_UPDATE -> {
listener?.onSubscriptionPermissionUpdate(response.subscriptionPermissionUpdate)
}
LivekitRtc.SignalResponse.MessageCase.REFRESH_TOKEN -> {
listener?.onRefreshToken(response.refreshToken)
}
LivekitRtc.SignalResponse.MessageCase.MESSAGE_NOT_SET,
null -> {
LKLog.v { "empty messageCase!" }
...
...
@@ -507,9 +510,12 @@ constructor(
fun onStreamStateUpdate(streamStates: List<LivekitRtc.StreamStateInfo>)
fun onSubscribedQualityUpdate(subscribedQualityUpdate: LivekitRtc.SubscribedQualityUpdate)
fun onSubscriptionPermissionUpdate(subscriptionPermissionUpdate: LivekitRtc.SubscriptionPermissionUpdate)
fun onRefreshToken(token: String)
}
companion object {
const val CONNECT_QUERY_TOKEN = "access_token"
const val SD_TYPE_ANSWER = "answer"
const val SD_TYPE_OFFER = "offer"
const val SD_TYPE_PRANSWER = "pranswer"
...
...
livekit-android-sdk/src/test/java/io/livekit/android/room/RTCEngineMockE2ETest.kt
查看文件 @
5e2dd0b
...
...
@@ -3,13 +3,12 @@ package io.livekit.android.room
import io.livekit.android.MockE2ETest
import io.livekit.android.mock.MockPeerConnection
import io.livekit.android.mock.MockWebSocket
import io.livekit.android.util.
LoggingRule
import io.livekit.android.util.
toOkioByteString
import io.livekit.android.util.toPBByteString
import kotlinx.coroutines.ExperimentalCoroutinesApi
import livekit.LivekitRtc
import org.junit.Assert
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
...
...
@@ -56,4 +55,17 @@ class RTCEngineMockE2ETest : MockE2ETest() {
val newWs = wsFactory.ws
Assert.assertNotEquals(oldWs, newWs)
}
@Test
fun refreshToken() = runTest {
connect()
val oldToken = wsFactory.request.url.queryParameter(SignalClient.CONNECT_QUERY_TOKEN)
wsFactory.listener.onMessage(wsFactory.ws, SignalClientTest.REFRESH_TOKEN.toOkioByteString())
wsFactory.listener.onFailure(wsFactory.ws, Exception(), null)
val newToken = wsFactory.request.url.queryParameter(SignalClient.CONNECT_QUERY_TOKEN)
Assert.assertNotEquals(oldToken, newToken)
Assert.assertEquals(SignalClientTest.REFRESH_TOKEN.refreshToken, newToken)
}
}
\ No newline at end of file
...
...
livekit-android-sdk/src/test/java/io/livekit/android/room/SignalClientTest.kt
查看文件 @
5e2dd0b
...
...
@@ -275,6 +275,11 @@ class SignalClientTest : BaseTest() {
}
build()
}
val REFRESH_TOKEN = with(LivekitRtc.SignalResponse.newBuilder()) {
refreshToken = "refresh_token"
build()
}
val LEAVE = with(LivekitRtc.SignalResponse.newBuilder()) {
leave = with(leaveBuilder) {
build()
...
...
protocol
@
01c702cc
Subproject commit
a4208afda1fd87c5e57efa14242c1fa94e34ec07
Subproject commit
01c702cc14462a761d8823e1f8d399b5d20d301e
...
...
请
注册
或
登录
后发表评论