Go语言关闭通道后继续使用通道_月亮+六便士的博客-CSDN博客
使用close()来关闭一个通道:
close(ch)
关闭的通道依然可以被访问,访问被关闭的通道将会发生一些问题。
1--给被关闭通道发送数据将会触发panic
2---从已关闭的通道接收数据将不会发送阻塞
测试代码
func rx() {
//defer close(Wsm.Chan_ReadErr)//不要关闭 一旦关闭 以后不能使用了
for {
mt, message, err := Wsm.WS_CONN.C.ReadMessage()
if err != nil {
log.Println("read:", err)
Wsm.Chan_ReadErr <- struct{}{}
return
}
log.Printf("recv:[%+v] %s", mt, message)
}
}
如果我采用close的话
后面就会一直很快拿到这个case
还是选择发消息比较好!!