/// <summary> /// 删除注册TCP服务端 /// </summary> /// <param name="server"></param> internal void RemoveRegister(IServer server) { #if NoAutoCSer throw new Exception(); #else if (server.TcpRegisterInfo != null) { Monitor.Enter(registerLock); try { if (server.TcpRegisterInfo != null) { servers.RemoveToEnd(server); if (registerClient.removeRegister(clientId.Tick, server.TcpRegisterInfo).Type == AutoCSer.Net.TcpServer.ReturnType.Success) { server.TcpRegisterInfo = null; } } } catch (Exception error) { server.AddLog(error); } finally { Monitor.Exit(registerLock); } } #endif }
/// <summary> /// 注册TCP服务端 /// </summary> /// <param name="server"></param> /// <returns>是否注册成功</returns> internal bool Register(IServer server) { #if NoAutoCSer throw new Exception(); #else ServerInfo serverInfo = server.CreateServerInfo(); serverInfo.ClientIndex = clientId.Index; serverInfo.ClientIdentity = clientId.Identity; Monitor.Enter(registerLock); try { servers.Add(server); long tick = clientId.Tick; if (registerClient.register(tick, serverInfo).Value) { server.TcpRegisterInfo = serverInfo; serverInfo.RegisterTick = tick; return(true); } } catch (Exception error) { server.AddLog(error); } finally { Monitor.Exit(registerLock); } #endif return(false); }
/// <summary> /// 删除注册TCP服务端 /// </summary> /// <param name="server"></param> internal void RemoveRegister(IServer server) { #if NoAutoCSer throw new Exception(); #else ServerLog log = server.CreateServerLog(LogType.RemoveServer); Monitor.Enter(registerLock); try { servers.Remove(server); registerClient.appendLog(log); } catch (Exception error) { server.AddLog(error); } finally { Monitor.Exit(registerLock); } #endif }
/// <summary> /// 注册TCP服务端 /// </summary> /// <param name="server"></param> /// <returns>是否注册成功</returns> internal bool Register(IServer server) { #if NoAutoCSer throw new Exception(); #else ServerLog serverInfo = server.CreateServerLog(LogType.RegisterServer); Monitor.Enter(registerLock); try { servers.Add(server); if (registerClient.appendLog(serverInfo).Value) { return(true); } } catch (Exception error) { server.AddLog(error); } finally { Monitor.Exit(registerLock); } #endif return(false); }