public IAsyncResult BeginProcessRequest(HttpContextBase context, AsyncCallback callback, object asyncState) { Message[] request = MessageConverter.FromJson(context.Request); CometAsyncResult asyncResult = new CometAsyncResult(context, callback, asyncState); GetMessageBus().HandleMessages(request, asyncResult); return asyncResult; }
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(); } }
public IAsyncResult BeginProcessRequest(HttpContextBase context, AsyncCallback callback, object asyncState) { Message[] request = MessageConverter.FromJson(context.Request); CometAsyncResult asyncResult = new CometAsyncResult(context, callback, asyncState); GetMessageBus().HandleMessages(request, asyncResult); return(asyncResult); }
public IAsyncResult BeginProcessRequest(HttpContextBase context, AsyncCallback callback, object asyncState) { if ( context.Request.HttpMethod == "OPTIONS" ) { CometAsyncResult result = new CometAsyncResult( context, callback, asyncState ); result.CompleteRequestWithMessages( null ); return result; } if ( context.Request.HttpMethod == "GET" && !IsOriginAllowed( context.Request.UrlReferrer ) ) { context.Response.StatusCode = 403; CometAsyncResult result = new CometAsyncResult( context, callback, asyncState ); result.CompleteRequestWithMessages( null ); return result; } Message[] request = MessageConverter.FromJson(context.Request); CometAsyncResult asyncResult = new CometAsyncResult(context, callback, asyncState); GetMessageBus().HandleMessages(request, asyncResult); return asyncResult; }