diff --git a/server/imserver_new/listener/wsplistener.go b/server/imserver_new/listener/wsplistener.go index df3e2db4..8ee66c65 100644 --- a/server/imserver_new/listener/wsplistener.go +++ b/server/imserver_new/listener/wsplistener.go @@ -18,8 +18,8 @@ import ( type WSPListener struct { ss.MsgHandlerImpl listener net.Listener - ch chan *f5.MsgHdr - msgList q5.ListHead + ch chan *f5.MsgHdr + msgList q5.ListHead } func (this *WSPListener) init() { @@ -39,9 +39,12 @@ func (this *WSPListener) unInit() { } func (this *WSPListener) SS_ping(hdr *f5.MsgHdr, msg *ss.SS_Ping) { + rspMsg := ss.SS_Pong{} + this.sendProxyMsg(hdr.Conn, 0, &rspMsg) } func (this *WSPListener) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) { + GetPlayerMgr().OnSocketClose(hdr.GetSocket()) } func (this *WSPListener) accept() { diff --git a/server/imserver_new/player/playermgr.go b/server/imserver_new/player/playermgr.go index c491a259..45c1bf13 100644 --- a/server/imserver_new/player/playermgr.go +++ b/server/imserver_new/player/playermgr.go @@ -55,7 +55,7 @@ func (this *playerMgr) init() { } } for socket, _ := range deletedPlayers { - this.onSocketClose(socket) + this.OnSocketClose(socket) } }) @@ -276,7 +276,7 @@ func (this *playerMgr) CMReconnect(hdr *f5.MsgHdr, msg *cs.CMReconnect) { GetWspListener().SendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg) } -func (this *playerMgr) onSocketClose(conn f5.WspCliConn) { +func (this *playerMgr) OnSocketClose(conn f5.WspCliConn) { hum := this.internalGetPlayerBySocket(conn) if hum == nil { return