— 서버연결 ----
1. Signal client 만들때 socket 만든다. (Url이 사용이됨)
2. MainViewController 만들때 client 들어간다.
3. MainViewController Viewdidload에서 self.signalClient.connect()를 통해 서버와 연결.
extension NativeWebSocket: URLSessionWebSocketDelegate, URLSessionDelegate {// URLSessionDelegate은 없어도 컴파일 가능
func urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didOpenWithProtocol protocol: String?)
— 위에는 서버에 연결 된 것 —
— 메시지 줄때(offer) ——
peerConnetion에 Offer한다(peerConnection.setLocalDescription)
1. sdp 먼저보낸다.
2. socket에 send
3. gathering
4. Ice send
— 메시지 offer 받을때 —— (내가 먼저 오퍼하고 그다음에 offer 받은 상황)
Sdp 하나만 온다. socket의 readmessage부분에.
들어온 sdp를 webrtcClient부분에서 set한다.
—- 끝 —-
— 상대방이 send answer 했을때 —
Candidate 주다가
"📚peerConnection did open data channel 🟦"
—- 끝 —-
메시지 받았을때(상대가 offer했을때) - 상대가 처음 offer하면 sdp 먼저온다. (아래는 서버에서 본 상대의 sdp)
하나 SessionDescription 보낸 후 아래와 같이 IcdeCandidate보낸다.
SignalingClient(webSocket: webSocketProvider) - WebSocket과 관련이 있다.