public static void HandleConnectionEnd(ClientObject client, byte[] messageData) { string reason = "Unknown"; using (MessageReader mr = new MessageReader(messageData)) { reason = mr.Read <string>(); } DarkLog.Debug(client.playerName + " sent connection end message, reason: " + reason); ClientHandler.DisconnectClient(client); }
public static void CheckHeartBeat(ClientObject client) { long currentTime = Server.serverClock.ElapsedMilliseconds; if ((currentTime - client.lastReceiveTime) > Common.CONNECTION_TIMEOUT) { //Heartbeat timeout DarkLog.Normal("Disconnecting client " + client.playerName + ", endpoint " + client.endpoint + ", Connection timed out"); ClientHandler.DisconnectClient(client); } else { if (client.sendMessageQueueHigh.Count == 0 && client.sendMessageQueueSplit.Count == 0 && client.sendMessageQueueLow.Count == 0) { if ((currentTime - client.lastSendTime) > Common.HEART_BEAT_INTERVAL) { Messages.Heartbeat.Send(client); } } } }