Skip to content

Commit

Permalink
use ServerInfo proto
Browse files Browse the repository at this point in the history
  • Loading branch information
hiroshihorie committed Nov 20, 2023
1 parent 12ac942 commit 08229eb
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 7 deletions.
5 changes: 2 additions & 3 deletions Sources/LiveKit/Core/Room+SignalClientDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ extension Room: SignalClientDelegate {
}

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

if e2eeManager != nil, !joinResponse.sifTrailer.isEmpty {
e2eeManager?.keyProvider().setSifTrailer(trailer: joinResponse.sifTrailer)
Expand All @@ -50,9 +50,8 @@ extension Room: SignalClientDelegate {
$0.sid = joinResponse.room.sid
$0.name = joinResponse.room.name
$0.metadata = joinResponse.room.metadata
$0.serverVersion = joinResponse.serverVersion
$0.serverRegion = joinResponse.serverRegion.isEmpty ? nil : joinResponse.serverRegion
$0.isRecording = joinResponse.room.activeRecording
$0.serverInfo = joinResponse.serverInfo

localParticipant.updateFromInfo(info: joinResponse.participant)

Expand Down
12 changes: 8 additions & 4 deletions Sources/LiveKit/Core/Room.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,15 @@ public class Room: NSObject, ObservableObject, Loggable {
public var metadata: String? { _state.metadata }

@objc
public var serverVersion: String? { _state.serverVersion }
public var serverVersion: String? { _state.serverInfo?.version.nilIfEmpty }

/// Region code the client is currently connected to.
@objc
public var serverRegion: String? { _state.serverRegion }
public var serverRegion: String? { _state.serverInfo?.region.nilIfEmpty }

/// Region code the client is currently connected to.
@objc
public var serverNodeId: String? { _state.serverInfo?.nodeID.nilIfEmpty }

@objc
public var remoteParticipants: [Sid: RemoteParticipant] { _state.remoteParticipants }
Expand Down Expand Up @@ -97,8 +101,6 @@ public class Room: NSObject, ObservableObject, Loggable {
var sid: String?
var name: String?
var metadata: String?
var serverVersion: String?
var serverRegion: String?

var remoteParticipants = [Sid: RemoteParticipant]()
var activeSpeakers = [Participant]()
Expand All @@ -109,6 +111,8 @@ public class Room: NSObject, ObservableObject, Loggable {
var numParticipants: Int = 0
var numPublishers: Int = 0

var serverInfo: Livekit_ServerInfo?

@discardableResult
mutating func getOrCreateRemoteParticipant(sid: Sid, info: Livekit_ParticipantInfo? = nil, room: Room) -> RemoteParticipant {
if let participant = remoteParticipants[sid] {
Expand Down
11 changes: 11 additions & 0 deletions Sources/LiveKit/Extensions/CustomStringConvertible.swift
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,17 @@ extension Livekit_SubscribedQuality: CustomStringConvertible {
}
}

extension Livekit_ServerInfo: CustomStringConvertible {
public var description: String {
"ServerInfo(edition: \(edition), " +
"version: \(version), " +
"protocol: \(`protocol`), " +
"region: \(region), " +
"nodeID: \(nodeID), " +
"debugInfo: \(debugInfo))"
}
}

// MARK: - NSObject

public extension Room {
Expand Down
7 changes: 7 additions & 0 deletions Sources/LiveKit/Extensions/String.swift
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,10 @@ extension Livekit_ParticipantInfo {
)
}
}

extension String {
/// Simply return nil if String is empty
var nilIfEmpty: String? {
isEmpty ? nil : self
}
}

0 comments on commit 08229eb

Please sign in to comment.