public void HandleMessages(Message[] messages, ICometAsyncResult asyncResult) { // Do this before we process the messages in case it's a disconnect IClient sendingClient = GetSenderOf(messages); IMessagesProcessor processor = this.CreateProcessorAndProcess(messages); if (sendingClient == null) { asyncResult.CompleteRequestWithMessages(processor.Result); return; } if (sendingClient.CurrentAsyncResult != null) { sendingClient.FlushQueue(); } sendingClient.CurrentAsyncResult = asyncResult; sendingClient.Enqueue(processor.Result); if (processor.ShouldSendResultStraightBackToClient) { sendingClient.FlushQueue(); } }
/// <summary> /// original HttpHandler code - AMP pattern /// </summary> /// <param name="result"></param> public void EndProcessRequest(IAsyncResult result) { ICometAsyncResult cometAsyncResult = (ICometAsyncResult)result; cometAsyncResult.SendAwaitingMessages(); }