Skip to content

Commit 1496e86

Browse files
authored
Merge pull request #9 from nabto/signaling-event-handler
change event handler interface
2 parents b754f28 + 89af039 commit 1496e86

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

Demo/Demo/ViewController.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class ViewController: UIViewController {
2626
// Nabto Signaling
2727
var signalingClient: SignalingClient? = nil
2828
var messageTransport: MessageTransport? = nil
29+
var signalingEventHandler: SignalingEventHandler? = nil
2930
let signer = JWTMessageSigner(sharedSecret: sharedSecret, keyId: "default")
3031

3132
func initPeerConnectionFactory() {
@@ -93,7 +94,7 @@ class ViewController: UIViewController {
9394
container.layoutIfNeeded()
9495
}
9596

96-
private func setupPeerConnection(_ iceServers: [SignalingIceServer]) {
97+
private func setupPeerConnection(_ iceServers: [SignalingIceServer]) async {
9798
let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil)
9899
let config = RTCConfiguration()
99100
config.iceServers = iceServers.map { iceServer in
@@ -106,6 +107,8 @@ class ViewController: UIViewController {
106107

107108
peerConnection = factory.peerConnection(with: config, constraints: constraints, delegate: self)
108109
perfectNegotiation = PerfectNegotiation(peerConnection: peerConnection, messageTransport: messageTransport!)
110+
signalingEventHandler = SignalingEventHandler(peerConnection: peerConnection, client: signalingClient!)
111+
await signalingClient?.addObserver(signalingEventHandler!)
109112
}
110113
}
111114

@@ -119,7 +122,7 @@ extension ViewController: MessageTransportObserver {
119122
}
120123

121124
func messageTransport(_ transport: any MessageTransport, didFinishSetup iceServers: [SignalingIceServer]) async {
122-
setupPeerConnection(iceServers)
125+
await setupPeerConnection(iceServers)
123126
}
124127
}
125128

Sources/NabtoWebRTCUtilPerfectNegotiation/SignalingEventHandler.swift

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ public class SignalingEventHandler {
1010
weak var peerConnection: RTCPeerConnection?
1111
weak var client: SignalingClient?
1212

13-
init(peerConnection: RTCPeerConnection, client: SignalingClient) {
13+
public init(peerConnection: RTCPeerConnection, client: SignalingClient) {
1414
self.peerConnection = peerConnection
1515
self.client = client
1616
}
1717

18-
func handlePeerConnectionStateChange() async {
18+
public func handlePeerConnectionStateChange() async {
1919
guard let peerConnection = peerConnection else {
2020
return
2121
}
@@ -28,8 +28,31 @@ public class SignalingEventHandler {
2828
peerConnection.restartIce()
2929
}
3030
}
31-
32-
func handleSignalingConnectionReconnect() {
31+
32+
private func handleSignalingConnectionReconnect() {
3333
peerConnection?.restartIce()
3434
}
3535
}
36+
37+
38+
extension SignalingEventHandler: SignalingClientObserver {
39+
public func signalingClient(_ client: any SignalingClient, didConnectionStateChange connectionState: SignalingConnectionState) async {
40+
41+
}
42+
43+
public func signalingClient(_ client: any SignalingClient, didGetMessage message: JSONValue) async {
44+
45+
}
46+
47+
public func signalingClient(_ client: any SignalingClient, didChannelStateChange channelState: SignalingChannelState) async {
48+
49+
}
50+
51+
public func signalingClient(_ client: any SignalingClient, didError error: any Error) async {
52+
53+
}
54+
55+
public func signalingClientDidConnectionReconnect(_ client: any SignalingClient) async {
56+
self.handleSignalingConnectionReconnect()
57+
}
58+
}

0 commit comments

Comments
 (0)