public void Close() { if (_closed) { return; } _listening = false; _closed = true; _outStream.WriteMessage(_protocol.CloseMessage); _inStream.Close(); _outStream.Close(); _connection.Close(); _sessionListener.OnClose(); }
// RESPONDER public void Close(DynError error) { _listening = false; _inStream.Close(); _outStream.Close(); _sessionListener.OnClose(); }
public NodeSession(TcpSession session, ILogger logger) { connection = new NodeConnection(); connection.StateChanged += (old, current) => { // Console.WriteLine($"{RemoteEndPoint} Connection State {old} -> {current}"); // ugly if (current == ConnectionState.Disconnecting) { listener?.OnClose(); listener = null; messages.CancelWaiting(); session.Close(); connection.State = ConnectionState.Disconnected; OnDisconnected.Call(connection.Reason); } }; this.session = session; this.logger = logger; }