protected override void OnStart(string[] args) { IReaderService readerService = new ReaderService(); IWSListener listener = new WSListener(readerService); _watcher.LogEvent += m => listener.Log(m); _watcher.Start(); }
/// <summary> /// 创建监听器 /// </summary> /// <param name="id">监听器标识</param> /// <param name="recvsize">接受缓冲区大小</param> /// <param name="protoType">协议类型</param> /// <param name="certificate">安全证书</param> /// <param name="sessionCreateHandler">创建session的委托</param> /// <returns>监听器</returns> public IListener CreateListener(uint id, int recvsize, ProtoType protoType, X509Certificate2 certificate, SessionCreater sessionCreateHandler) { if (NetworkMgr.instance.ContainsListener(id)) { throw new System.Exception("session id already exists"); } IListener listener = null; switch (protoType) { case ProtoType.TCP: if (certificate != null) { TLSListener tlsListener; listener = tlsListener = new TLSListener(id); tlsListener.certificate = certificate; } else { listener = new TCPListener(id); } break; case ProtoType.WebSocket: if (certificate != null) { TLSListener tlsListener; listener = tlsListener = new TLSWSListener(id); tlsListener.certificate = certificate; } else { listener = new WSListener(id); } break; case ProtoType.KCP: listener = new KCPListener(id); break; } if (listener == null) { return(null); } listener.sessionCreater = sessionCreateHandler; listener.recvBufSize = recvsize; NetworkMgr.instance.AddListener(listener); return(listener); }