@Leesper 发现另一个问题,当serverConn关闭之后调用asyncWrite并不会返回错误,原因出在这个地方
func asyncWrite(c interface{}, m Message) error {
defer func() error {
if p := recover(); p != nil {
return ErrServerClosed
}
return nil
}()
//...
}
在defer函数中这样返回并不会生效,应该使用显示返回值
func asyncWrite(c interface{}, m Message) (err error) {
defer func() {
if p := recover(); p != nil {
err = ErrServerClosed
}
}()
// ...
}
Tao - Go语言实现的TCP网络编程框架一. 什么是Tao Tao,在英文中的意思是“The ultimate principle of universe”,即“道”,它是宇宙的终极奥义。 “道生一,一生二,二生三...