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(); } }
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); }
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; }