Exemple #1
0
        public void Close()
        {
            if (_closed)
            {
                return;
            }

            _listening = false;
            _closed    = true;
            _outStream.WriteMessage(_protocol.CloseMessage);
            _inStream.Close();
            _outStream.Close();
            _connection.Close();
            _sessionListener.OnClose();
        }
Exemple #2
0
 // RESPONDER
 public void Close(DynError error)
 {
     _listening = false;
     _inStream.Close();
     _outStream.Close();
     _sessionListener.OnClose();
 }
Exemple #3
0
        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;
        }