public void HandleMessages(Message[] messages, CometAsyncResult asyncResult)
{
// Do this before we process the messages in case it's a disconnect
Client 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();
}
}