public void Dispose()
        {
            _listener?.Dispose();
            _listener = null;

            var clients = _cluster.GetSnapshot();

            foreach (var client in clients)
            {
                client.Dispose();
            }
            _cluster.Clear();
            _cluster = null;
        }
        public void HandleRequest(ISocketListener socketListener)
        {
            var buffer = new byte[ReadSize];

            socketListener.Receive(buffer, readBytes =>
            {
                if (readBytes.Length <= 0)
                {
                    _logger.Debug("Client disconnected from {0}:{1}", socketListener.RemoteIpAddress, socketListener.RemotePort);
                    socketListener.Dispose();
                    return;
                }

                var requestString = Encoding.UTF8.GetString(readBytes);

                var request = _requestParser.Parse(requestString);

                var handler = _handshakeNegotiator.Negotiate(request, m => socketListener.Send(m, _logger));

                Read(socketListener, buffer, handler);
            }, ex => socketListener.Close(ex.GetErrorResponse(), _logger));
        }
Beispiel #3
0
        //public bool ChangeReceivingModeFile(IUploadingFile uploadingFile)
        //{
        //    //if (_fileIsUploading)
        //    //    return false;

        //    //if (UploadingFiles.Contains(uploadingFile))
        //    //    UploadingFiles.Add(uploadingFile);

        //    //_fileIsUploading = true;
        //    //_currentUploadingFile = uploadingFile;
        //    return true;
        //}

        #endregion

        #region IDisposable Members

        public void Dispose()
        {
            _listener.Dispose();
        }