Run parts of data channel closure depending on state.
parent
6f5b605ea7
commit
0fb483d493
|
@ -53,14 +53,15 @@ func (conn *DataChannel) OnError(f func(error)) {
|
|||
|
||||
func (conn *DataChannel) Close() {
|
||||
// already closed?
|
||||
if conn.dataChannel.ReadyState() == webrtc.DataChannelStateClosing ||
|
||||
conn.dataChannel.ReadyState() == webrtc.DataChannelStateClosed {
|
||||
return
|
||||
}
|
||||
|
||||
if conn.dataChannel.ReadyState() != webrtc.DataChannelStateClosing &&
|
||||
conn.dataChannel.ReadyState() != webrtc.DataChannelStateClosed {
|
||||
conn.AbortRawDataTransmission(io.EOF)
|
||||
conn.dataChannel.Close()
|
||||
}
|
||||
|
||||
if conn.dataChannel.ReadyState() != webrtc.DataChannelStateClosed {
|
||||
<-conn.closeWaitChannel
|
||||
}
|
||||
}
|
||||
|
||||
func (conn *DataChannel) triggerOpen() {
|
||||
|
|
Loading…
Reference in New Issue