internal static void Dispatch(Manager manager, Session session, Protocol protocol) { //Task task = new Task(manager, session, protocol); //ThreadPool.AddTask(task); //CUI Modify in 2014/05/26 manager.OnRecvProtocol(session, protocol); }
protected internal override void OnAbortSession(Session session) { if (this.session != null) Console.WriteLine("PingClient::OnAbortSession " + this.session.getPeerAddress().ToString()); this.session = null; //reconnect }
private Task(Manager _manager, Session _session, Protocol _protocol) : base() { manager = _manager; session = _session; protocol = _protocol; time_start = WatchDog.GetTime(); }
protected internal override void OnAddSession(Session session) { Console.WriteLine("PingClient::OnAddSession"); this.session = session; lock (locker) { pingmap[session.ID] = Environment.TickCount; } }
internal void AbortSession(Session session) { try { OnAbortSession(session); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } }
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; } } }
protected internal override void OnAddSession(Session session) { lock (locker) { if (m_callback == null) return; if (m_state != (int)STATE.STATE_CONNECTING) return; this.session = session; if (m_callback != null && m_state == (int)STATE.STATE_CONNECTING && this.session == session) m_callback(null, session, (int)EVENT.EVENT_ADDSESSION); Console.WriteLine("GameClient::OnAddSession"); } }
internal void DelSession(Session session) { try { OnDelSession(session); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } lock (ilock) { set.Remove(session); } }
internal void AddSession(Session session) { lock (ilock) { set.Add(session); } try { OnAddSession(session); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } }
public override Object Clone() { try { Session s = new Session(ibuffer.capacity(), obuffer.capacity(), isecbuf.capacity(), isec, osec); // s.state = new State(state); s.ism = new Stream(s); s.os = new LinkedList<OctetsStream>(); s.timer = new WatchDog(); s.manager = manager; return s; } catch (Exception e) { Console.WriteLine(e.Message); } return null; }
internal Stream(Session s, int size) : base(size) { session = s; }
public static void AbortRequest(Session session) { GetInstance().Close(session); }
internal Stream(Session s) { session = s; }
protected internal override void OnAbortSession(Session session) { //if (this.session != null) // UnityEngine.Debug.Log("DirClient::OnAbortSession " + this.session.getPeerAddress().ToString()); this.session = null; }
protected internal override void OnAbortSession(Session session) { lock (locker) { if(this.session != session) return; if (m_callback != null && m_state == (int)STATE.STATE_CONNECTING /*&& this.session == session*/) m_callback(null, session, (int)EVENT.EVENT_ABORTSESSION); this.session = null; } }
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(); } } }
protected internal override void OnAddSession(Session session) { //UnityEngine.Debug.Log("DirClient::OnAddSession"); this.session = session; }
public bool Send(Session session, Protocol protocol) { if (!set.Contains(session)) return false; return session.Send(protocol); }
public bool Close(Session session) { if (!set.Contains(session)) return false; session.Close(); return true; }
public static Session Client(Manager manager) { Session session = new Session(manager); ActiveIO.Open(session, manager); return session; }
protected internal virtual void OnAbortSession(Session session) { }
protected internal override void OnAddSession(Session session) { this.session = session; }
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); //线程里,输出下错误信息 } }
protected internal override void OnDelSession(Session session) { lock (locker) { if (this.session != session) return; if (m_callback != null) { if (m_state == (int)STATE.STATE_KEEPING) { m_state = (int)STATE.STATE_CLOSED; } m_callback(null, session, (int)EVENT.EVENT_DISCONNECT); } this.session = null; } }
public virtual void Process(Manager manager, Session session) { manager.OnRecvProtocol(session, this); }
public bool ChangeState(Session session, String name) { if (!set.Contains(session)) return false; session.ChangeState(name); return true; }
internal bool SetOSecurity(Session session, String type, Octets key) { if (!set.Contains(session)) return false; session.SetOSecurity(type, key); return true; }
public virtual void OnRecvProtocol(Session session, Protocol protocol) {}
protected internal override void OnDelSession(Session session) { this.session = null; }
protected internal abstract void OnDelSession(Session session);