Skip to content

Commit

Permalink
improve SignalClient cancel flow and code
Browse files Browse the repository at this point in the history
  • Loading branch information
hiroshihorie committed Nov 16, 2023
1 parent fabc152 commit 12ac942
Show file tree
Hide file tree
Showing 5 changed files with 104 additions and 104 deletions.
26 changes: 13 additions & 13 deletions Sources/LiveKit/Core/Engine+SignalClientDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import Foundation
@_implementationOnly import WebRTC

extension Engine: SignalClientDelegate {
func signalClient(_: SignalClient, didMutate state: SignalClient.State, oldState: SignalClient.State) {
func signalClient(_: SignalClient, didMutateState state: SignalClient.State, oldState: SignalClient.State) {
// connectionState did update
if state.connectionState != oldState.connectionState,
// did disconnect
Expand All @@ -36,7 +36,7 @@ extension Engine: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didReceive iceCandidate: LKRTCIceCandidate, target: Livekit_SignalTarget) {
func signalClient(_: SignalClient, didReceiveIceCandidate iceCandidate: LKRTCIceCandidate, target: Livekit_SignalTarget) {
guard let transport = target == .subscriber ? subscriber : publisher else {
log("Failed to add ice candidate, transport is nil for target: \(target)", .error)
return
Expand Down Expand Up @@ -82,21 +82,21 @@ extension Engine: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate token: String) {
func signalClient(_: SignalClient, didUpdateToken token: String) {
// update token
_state.mutate { $0.token = token }
}

func signalClient(_: SignalClient, didReceive _: Livekit_JoinResponse) {}
func signalClient(_: SignalClient, didPublish _: Livekit_TrackPublishedResponse) {}
func signalClient(_: SignalClient, didUnpublish _: Livekit_TrackUnpublishedResponse) {}
func signalClient(_: SignalClient, didUpdate _: [Livekit_ParticipantInfo]) {}
func signalClient(_: SignalClient, didUpdate _: Livekit_Room) {}
func signalClient(_: SignalClient, didUpdate _: [Livekit_SpeakerInfo]) {}
func signalClient(_: SignalClient, didUpdate _: [Livekit_ConnectionQualityInfo]) {}
func signalClient(_: SignalClient, didReceiveJoinResponse _: Livekit_JoinResponse) {}
func signalClient(_: SignalClient, didPublishLocalTrack _: Livekit_TrackPublishedResponse) {}
func signalClient(_: SignalClient, didUnpublishLocalTrack _: Livekit_TrackUnpublishedResponse) {}
func signalClient(_: SignalClient, didUpdateParticipants _: [Livekit_ParticipantInfo]) {}
func signalClient(_: SignalClient, didUpdateRoom _: Livekit_Room) {}
func signalClient(_: SignalClient, didUpdateSpeakers _: [Livekit_SpeakerInfo]) {}
func signalClient(_: SignalClient, didUpdateConnectionQuality _: [Livekit_ConnectionQualityInfo]) {}
func signalClient(_: SignalClient, didUpdateRemoteMute _: String, muted _: Bool) {}
func signalClient(_: SignalClient, didUpdate _: [Livekit_StreamStateInfo]) {}
func signalClient(_: SignalClient, didUpdate _: String, subscribedQualities _: [Livekit_SubscribedQuality]) {}
func signalClient(_: SignalClient, didUpdate _: Livekit_SubscriptionPermissionUpdate) {}
func signalClient(_: SignalClient, didUpdateTrackStreamStates _: [Livekit_StreamStateInfo]) {}
func signalClient(_: SignalClient, didUpdateTrack _: String, subscribedQualities _: [Livekit_SubscribedQuality]) {}
func signalClient(_: SignalClient, didUpdateSubscriptionPermission _: Livekit_SubscriptionPermissionUpdate) {}
func signalClient(_: SignalClient, didReceiveLeave _: Bool, reason _: Livekit_DisconnectReason) {}
}
14 changes: 5 additions & 9 deletions Sources/LiveKit/Core/Engine.swift
Original file line number Diff line number Diff line change
Expand Up @@ -343,18 +343,14 @@ extension Engine {
// This should never happen since Engine is owned by Room
let room = try await requireRoom()

try await signalClient.connect(url,
token,
connectOptions: _state.connectOptions,
reconnectMode: _state.reconnectMode,
adaptiveStream: room._state.options.adaptiveStream)
let jr = try await signalClient.connect(url,
token,
connectOptions: _state.connectOptions,
reconnectMode: _state.reconnectMode,
adaptiveStream: room._state.options.adaptiveStream)
// Check cancellation after WebSocket connected
try Task.checkCancellation()

let jr = try await signalClient.joinResponseCompleter.wait()
// Check cancellation after received join response
try Task.checkCancellation()

_state.mutate { $0.connectStopwatch.split(label: "signal") }
try await configureTransports(joinResponse: jr)
// Check cancellation after configuring transports
Expand Down
26 changes: 13 additions & 13 deletions Sources/LiveKit/Core/Room+SignalClientDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate trackSid: String, subscribedQualities: [Livekit_SubscribedQuality]) {
func signalClient(_: SignalClient, didUpdateTrack trackSid: String, subscribedQualities: [Livekit_SubscribedQuality]) {
log("qualities: \(subscribedQualities.map { String(describing: $0) }.joined(separator: ", "))")

localParticipant.onSubscribedQualitiesUpdate(trackSid: trackSid, subscribedQualities: subscribedQualities)
}

func signalClient(_: SignalClient, didReceive joinResponse: Livekit_JoinResponse) {
func signalClient(_: SignalClient, didReceiveJoinResponse joinResponse: Livekit_JoinResponse) {
log("server version: \(joinResponse.serverVersion), region: \(joinResponse.serverRegion)", .info)

if e2eeManager != nil, !joinResponse.sifTrailer.isEmpty {
Expand All @@ -64,7 +64,7 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate room: Livekit_Room) {
func signalClient(_: SignalClient, didUpdateRoom room: Livekit_Room) {
_state.mutate {
$0.metadata = room.metadata
$0.isRecording = room.activeRecording
Expand All @@ -74,7 +74,7 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate speakers: [Livekit_SpeakerInfo]) {
func signalClient(_: SignalClient, didUpdateSpeakers speakers: [Livekit_SpeakerInfo]) {
log("speakers: \(speakers)", .trace)

let activeSpeakers = _state.mutate { state -> [Participant] in
Expand Down Expand Up @@ -111,7 +111,7 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate connectionQuality: [Livekit_ConnectionQualityInfo]) {
func signalClient(_: SignalClient, didUpdateConnectionQuality connectionQuality: [Livekit_ConnectionQualityInfo]) {
log("connectionQuality: \(connectionQuality)", .trace)

for entry in connectionQuality {
Expand Down Expand Up @@ -142,7 +142,7 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate subscriptionPermission: Livekit_SubscriptionPermissionUpdate) {
func signalClient(_: SignalClient, didUpdateSubscriptionPermission subscriptionPermission: Livekit_SubscriptionPermissionUpdate) {
log("did update subscriptionPermission: \(subscriptionPermission)")

guard let participant = _state.remoteParticipants[subscriptionPermission.participantSid],
Expand All @@ -154,7 +154,7 @@ extension Room: SignalClientDelegate {
publication.set(subscriptionAllowed: subscriptionPermission.allowed)
}

func signalClient(_: SignalClient, didUpdate trackStates: [Livekit_StreamStateInfo]) {
func signalClient(_: SignalClient, didUpdateTrackStreamStates trackStates: [Livekit_StreamStateInfo]) {
log("did update trackStates: \(trackStates.map { "(\($0.trackSid): \(String(describing: $0.state)))" }.joined(separator: ", "))")

for update in trackStates {
Expand All @@ -167,7 +167,7 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUpdate participants: [Livekit_ParticipantInfo]) {
func signalClient(_: SignalClient, didUpdateParticipants participants: [Livekit_ParticipantInfo]) {
log("participants: \(participants)")

var disconnectedParticipants = [Sid]()
Expand Down Expand Up @@ -213,7 +213,7 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didUnpublish localTrack: Livekit_TrackUnpublishedResponse) {
func signalClient(_: SignalClient, didUnpublishLocalTrack localTrack: Livekit_TrackUnpublishedResponse) {
log()

guard let publication = localParticipant._state.tracks[localTrack.trackSid] as? LocalTrackPublication else {
Expand All @@ -231,10 +231,10 @@ extension Room: SignalClientDelegate {
}
}

func signalClient(_: SignalClient, didMutate _: SignalClient.State, oldState _: SignalClient.State) {}
func signalClient(_: SignalClient, didMutateState _: SignalClient.State, oldState _: SignalClient.State) {}
func signalClient(_: SignalClient, didReceiveAnswer _: LKRTCSessionDescription) {}
func signalClient(_: SignalClient, didReceiveOffer _: LKRTCSessionDescription) {}
func signalClient(_: SignalClient, didReceive _: LKRTCIceCandidate, target _: Livekit_SignalTarget) {}
func signalClient(_: SignalClient, didPublish _: Livekit_TrackPublishedResponse) {}
func signalClient(_: SignalClient, didUpdate _: String) {}
func signalClient(_: SignalClient, didReceiveIceCandidate _: LKRTCIceCandidate, target _: Livekit_SignalTarget) {}
func signalClient(_: SignalClient, didPublishLocalTrack _: Livekit_TrackPublishedResponse) {}
func signalClient(_: SignalClient, didUpdateToken _: String) {}
}
Loading

0 comments on commit 12ac942

Please sign in to comment.