Пример #1
0
        private void EnqueueClientDataToServerSocket(byte[] httpMessageData)
        {
            if (!this.currentHttpMessage.Request.IsInitialized)
            {
                this.fromClientDataQueue.Enqueue(httpMessageData);
            }
            else
            {
                ServerWorker serverSocket = GetOrCreateServerSocket();

                if (!this.currentHttpMessage.ServerRelayInitiated)
                {
                    serverSocket.EnqueueHttpMessage(this.currentHttpMessage);
                    this.currentHttpMessage.ServerRelayInitiated = true;
                }

                while (this.fromClientDataQueue.Count > 0)
                {
                    serverSocket.EnqueueFromClientData(this.fromClientDataQueue.Dequeue());
                }

                serverSocket.EnqueueFromClientData(httpMessageData);

                serverSocket.Start();
            }
        }
Пример #2
0
        private ServerWorker GetOrCreateServerSocket()
        {
            string remoteHost = this.currentHttpMessage.Request.Host;

            ServerWorker serverSocket;

            if (!serverWorkers.TryGetValue(remoteHost, out serverSocket))
            {
                serverSocket = new ServerWorker(this.Settings, remoteHost, this, this.workerSocket);
                serverWorkers.Add(remoteHost, serverSocket);
            }

            return(serverSocket);
        }
Пример #3
0
        private ServerWorker GetOrCreateServerSocket()
        {
            string remoteHost = this.currentHttpMessage.Request.Host;

            ServerWorker serverSocket;
            if (!serverWorkers.TryGetValue(remoteHost, out serverSocket))
            {
                serverSocket = new ServerWorker(this.Settings, remoteHost, this, this.workerSocket);
                serverWorkers.Add(remoteHost, serverSocket);
            }

            return serverSocket;
        }