public override void EndService() { base.EndService(); if (loginServerSocket != null) { loginServerSocket.Disconnect(); } }
public void Close() { if (socket != null && socket.IsConnected == true) { socket.Disconnect(); socket = null; } }
private void Socket_OnPacketsReceived(IPacketSend socket, Queue <BasePacket> receivedPackets) { numPacketsReceived += receivedPackets.Count; // Look for a server id packet if we've only just connected if (!isBoundToGateway) { var packet = receivedPackets.Dequeue(); if (packet is ServerIdPacket) { ServerIdPacket id = packet as ServerIdPacket; if (id != null && id.Type == ServerIdPacket.ServerType.Gateway) { isBoundToGateway = true; OnConnect?.Invoke(); } } else { socket.Disconnect(); Console.Error.WriteLine("Unexpected packet type, disconnecting: {0}", packet.PacketType); return; } } // Look for a login credentials valid packet if we've tried to log in else if (!IsLoggedIn && hasSentCredentials) { var packet = receivedPackets.Dequeue(); if (packet is LoginCredentialValid) { HandleLoginCredentialsValidPacket(packet as LoginCredentialValid); } else { socket.Disconnect(); Console.Error.WriteLine("Unexpected packet type, disconnecting: {0}", packet.PacketType); return; } } lock (unprocessedPackets) { // Store the other packets for retrieval later unprocessedPackets.AddRange(receivedPackets); } }
public void EndClient() { socket.Disconnect(); }