public void Close() { try { if (_keepAliveTracker != null) { _keepAliveTracker.StopTimer(); } if (_keepAliveTimeoutTimer != null) { _keepAliveTimeoutTimer.Change(Timeout.Infinite, Timeout.Infinite); } _connector.TransportConnected -= OnTransportConnected; _connector.TransportDisconnected -= OnTransportDisconnected; _connector.TransportDataReceived -= OnTransportDataReceived; if (_connector.IsConnected) { _connector.Disconnect(); } if (_remoteActor != null) { if (ChannelDisconnected != null) { ChannelDisconnected(this, new ActorChannelDisconnectedEventArgs(this.Identifier, _remoteActor)); } } _log.DebugFormat("Disconnected with remote [{0}], SessionKey[{1}].", _remoteActor, this.ConnectToEndPoint); } finally { _remoteActor = null; IsHandshaked = false; OnClose(); } }
public void Close() { try { if (_keepAliveTracker != null) { _keepAliveTracker.Dispose(); } if (_keepAliveTimeoutTimer != null) { _keepAliveTimeoutTimer.Dispose(); } _connector.Connected -= OnConnected; _connector.Disconnected -= OnDisconnected; _connector.DataReceived -= OnDataReceived; if (_connector.IsConnected) { _connector.Disconnect(); } if (Disconnected != null) { Disconnected(this, new ActorDisconnectedEventArgs(this.ConnectToEndPoint.ToString(), _remoteActor)); } _log.DebugFormat("Disconnected with remote [{0}], SessionKey[{1}].", _remoteActor, this.ConnectToEndPoint); } finally { _remoteActor = null; IsHandshaked = false; OnClose(); } }