public override void OnServerDisconnect(NetworkConnection conn) { CallbackLog($"OnServerDisconnect({conn})"); ServerDisconnectEvent?.Invoke(this, EventArgs.Empty); base.OnServerDisconnect(conn); }
private void Channel_Faulted(object sender, EventArgs e) { //Server disconnected - should reconnect ServerDisconnectEvent?.Invoke(this, "ServerDisconnect"); }
public TCPRawServer( IPAddress _listenIp, ushort _listenPort, int _backLg, int headerSize, PacketCalculateEvent _calculatePacketSize, ServerConnectEvent _connectHandler = null, ServerDisconnectEvent _disconnectHandler = null, ServerOnReceivePacketEvent _recvPacketHandler = null, int _maxConnections = 4096, int _maxPacketSize = 64 * 1024, int _maxPacketsPerStep = 32, double _sendRecvRatio = 3 / 1, bool _noCheckDDos = false, int _serverTickMicro = 5000, int _connRetry = 5000) { this.listenIp = _listenIp; this.listenPort = _listenPort; this.backLog = _backLg; this.packetHeaderSize = headerSize; this.maxClients = _maxConnections; this.maxPacketSize = _maxPacketSize; this.maxPacketsPerStep = _maxPacketsPerStep; this.noCheckDDos = _noCheckDDos; this.serverTickMicro = _serverTickMicro; this.sendRecvRatio = _sendRecvRatio; this.connRetryTimeout = _connRetry; this.calculatePacketSize = _calculatePacketSize; this.onNewClientEv = _connectHandler; this.onNewPacketEv = _recvPacketHandler; this.onDisconnectClientEv = _disconnectHandler; if (this.calculatePacketSize == null) { throw new ArgumentNullException("PacketCalculateEvent is null"); } toReadSockets = new List <Socket>(maxClients); toWriteSockets = new List <Socket>(maxClients); clientAssocList = new Dictionary <Socket, int>(maxClients); commandsQueue = new ConcurrentQueue <serverCommand>(); secondCommandsQueue = new Queue <serverCommand>(); sendStreamSize = (int)Math.Ceiling((maxPacketSize * maxPacketsPerStep) * sendRecvRatio); if (sendStreamSize <= maxPacketSize) { sendStreamSize = maxPacketSize + 1; } clients = new client[maxClients]; freeClientSlots = new Stack <int>(); Online = 0; for (int i = 0; i < maxClients; ++i) { clients[i] = null; freeClientSlots.Push(i); } serverStarted = false; workerThread = null; }
/// <summary>Handles the ServerDisconnectEvent event.</summary> /// <param name="message">The message.</param> public void Handle(ServerDisconnectEvent message) { mainWindow.SetNewView(Screens.MENU); }
private void Channel_Faulted(object sender, EventArgs e) { ServerDisconnectEvent?.Invoke(this, "ServerDisconnect"); }
/// <summary>Handles the ServerDisconnectEvent event.</summary> /// <param name="message">The message.</param> public void Handle(ServerDisconnectEvent message) { Disconnect(); }