zinx icon indicating copy to clipboard operation
zinx copied to clipboard

服务端能否感知到客户端意外断开连接?

Open readingtfsc opened this issue 5 years ago • 1 comments

你好老师, 请问 服务端能否感知到客户端意外断开连接? 当客户端意外退出时,服务端需要断开接连释放资源,请问能否感知到客户端意外断开连接呢?

readingtfsc avatar Mar 28 '20 04:03 readingtfsc

当客户端断开时,服务器的websocket或tcp是会断开的,这时会影响如下方法

//设置该Server的连接断开时的Hook函数
func (s *Server) SetOnConnStop(hookFunc func(ziface.IConnection)) {
	s.OnConnStop = hookFunc
}

你可以如下示例这样去注册一下事件

func main() {
	//创建服务器句柄
	s := znet.NewServer()
	
	s.SetOnConnStop(OnConnectionStop)
}

//当客户端断开连接的时候的hook函数
func OnConnectionStop(conn ziface.IConnection) {
     //你要断开连接所做的事情
}

yilinershi avatar Oct 10 '20 06:10 yilinershi