@@ -985,7 +985,7 @@ class PeerChannel: NSObject, RTCPeerConnectionDelegate {
985985
986986 func handleSignalingOverDataChannel( _ signaling: Signaling ) {
987987 Logger . debug (
988- type: . mediaStream ,
988+ type: . peerChannel ,
989989 message: " handle signaling over DataChannel => \( signaling. typeName ( ) ) " )
990990 switch signaling {
991991 case . reOffer( let reOffer) :
@@ -1050,31 +1050,33 @@ class PeerChannel: NSObject, RTCPeerConnectionDelegate {
10501050
10511051 nativeChannel? . close ( )
10521052
1053- signalingChannel. disconnect ( error: error, reason: reason)
1054-
1055- Logger . debug ( type: . peerChannel, message: " call onDisconnect " )
1056- /// DataChannel がクローズされ (reason == .dataChannelClosed)、
1057- /// かつ事前に Sora から "close" メッセージを受信していた場合 (dataChannelSignalingClose != nil)、
1058- /// MediaChannel にそのメッセージ内容を dataChannelClosed として通知する
1053+ var error = error
1054+ // DataChannel が正常にクローズされ (reason == .dataChannelClosed)、
1055+ // かつ事前に Sora から "close" メッセージを受信していた場合 (dataChannelSignalingClose != nil)、
1056+ // error を SoraError.dataChannelClosed にする
10591057 if let dataChannelSignalingClose = dataChannelSignalingClose,
10601058 case . dataChannelClosed = reason
10611059 {
1062- internalHandlers. onDisconnect ? (
1063- SoraError . dataChannelClosed (
1064- statusCode: dataChannelSignalingClose. code, reason: dataChannelSignalingClose. reason) ,
1065- reason)
1066- } else {
1067- internalHandlers. onDisconnect ? ( error, reason)
1060+ error = SoraError . dataChannelClosed (
1061+ statusCode: dataChannelSignalingClose. code, reason: dataChannelSignalingClose. reason
1062+ )
10681063 }
1069- // disconnect したあとは基本的に PeerChannel を使い回さないはずだが、一応 nil にしておく
1070- dataChannelSignalingClose = nil
1064+
1065+ // TODO(zztkm): signalingChannel.ignoreDisconnectWebSocket が true の場合はこの処理は不要かもしれない
1066+ signalingChannel. disconnect ( error: error, reason: reason)
1067+
1068+ Logger . debug ( type: . peerChannel, message: " call onDisconnect " )
1069+ internalHandlers. onDisconnect ? ( error, reason)
10711070
10721071 if onConnect != nil {
10731072 Logger . debug ( type: . peerChannel, message: " call connect(handler:) " )
10741073 onConnect!( error)
10751074 onConnect = nil
10761075 }
10771076
1077+ // disconnect したあとは基本的に PeerChannel を使い回さないはずだが、一応 nil にしておく
1078+ dataChannelSignalingClose = nil
1079+
10781080 Logger . debug ( type: . peerChannel, message: " did disconnect " )
10791081 }
10801082
0 commit comments