protected override bool DisconnectCore(CircuitHost circuitHost, string connectionId) { if (BeforeDisconnect != null) { Assert.True(BeforeDisconnect?.Wait(TimeSpan.FromSeconds(10)), "BeforeDisconnect failed to be set"); } return(base.DisconnectCore(circuitHost, connectionId)); }
/// <summary>Закрытие соединения с сервером </summary> public void Disconnect() { if (socket != null) { try { if (socket.Connected) { BeforeDisconnect?.Invoke(); socket.Shutdown(SocketShutdown.Both); //добиваемся, чтобы все отправляемые/принимаемые данные были обработанны } } finally { socket.Close(); socket = null; } } }