public override void OnRecvProtocol(Session session, Protocol protocol) { //UnityEngine.Debug.Log("DirClient:OnRecvProtocol. procotol type:" + protocol.getProtocolType().ToString()); if(protocol.getProtocolType()==DirInfo.PROTOCOL_TYPE) { DirInfo p = protocol as DirInfo; if(p!=null) { Close(session); m_dirInfo = p; m_requesting = false; } } }
public override void OnRecvProtocol(Session session, Protocol protocol) { Console.WriteLine("PingClient:OnRecvProtocol. procotol type:" + protocol.getProtocolType().ToString()); if(protocol.getProtocolType()==Challenge.PROTOCOL_TYPE) { Challenge p = protocol as Challenge; if(p!=null) { ServerStatus status = new ServerStatus(); // status.attr = *(Attr*)(p->nonce.begin()); { lock (locker) { status.ping = (uint)(Environment.TickCount - pingmap[session.ID]); } } if(status.ping<=5) status.ping = 5; status.ping = status.ping>9999?9999:status.ping; m_callback(status, session, (int)EVENT.EVENT_PINGRETURN); Close(session); //p.Destroy(); } } }
public override void OnRecvProtocol(Session session, Protocol protocol) { try { lock (locker) { if (this.session == session) { if (protocol.getProtocolType() == KeepAlive.PROTOCOL_TYPE) { m_lastrecv = (uint)Environment.TickCount; m_ping = m_lastrecv - m_lastsend; //protocol.Destroy(); } else if (protocol.getProtocolType() == (int)GNET.NetProtocolType.PROTOCOL_MARSHALDATA) { CommonData p = (CommonData)protocol; GNET.MarshalData md = new GNET.MarshalData(); md.unmarshal(p.GetData()); Protocol prtc = Protocol.DecodeMarshal(md.data); protocol = null; if (prtc != null) m_callback(prtc, session, (int)WM.WM_IOPROTOCOL); } else { m_callback(protocol, session, (int)WM.WM_IOPROTOCOL); } } } } catch (Exception e) { Debug.LogException(e); //线程里,输出下错误信息 } }