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() {
|
func (conn *DataChannel) Close() {
|
||||||
// already closed?
|
// already closed?
|
||||||
if conn.dataChannel.ReadyState() == webrtc.DataChannelStateClosing ||
|
if conn.dataChannel.ReadyState() != webrtc.DataChannelStateClosing &&
|
||||||
conn.dataChannel.ReadyState() == webrtc.DataChannelStateClosed {
|
conn.dataChannel.ReadyState() != webrtc.DataChannelStateClosed {
|
||||||
return
|
conn.AbortRawDataTransmission(io.EOF)
|
||||||
|
conn.dataChannel.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
conn.AbortRawDataTransmission(io.EOF)
|
if conn.dataChannel.ReadyState() != webrtc.DataChannelStateClosed {
|
||||||
conn.dataChannel.Close()
|
<-conn.closeWaitChannel
|
||||||
<-conn.closeWaitChannel
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (conn *DataChannel) triggerOpen() {
|
func (conn *DataChannel) triggerOpen() {
|
||||||
|
|
Loading…
Reference in New Issue