Esempio n. 1
0
    public TestHttpMessageHandler(ILoggerFactory loggerFactory, bool autoNegotiate = true, bool handleFirstPoll = true)
    {
        _logger = loggerFactory?.CreateLogger <TestHttpMessageHandler>() ?? NullLoggerFactory.Instance.CreateLogger <TestHttpMessageHandler>();

        if (autoNegotiate)
        {
            OnNegotiate((_, cancellationToken) => ResponseUtils.CreateResponse(HttpStatusCode.OK, ResponseUtils.CreateNegotiationContent()));
        }

        if (handleFirstPoll)
        {
            var firstPoll = true;
            OnRequest(async(request, next, cancellationToken) =>
            {
                cancellationToken.ThrowIfCancellationRequested();
                if (ResponseUtils.IsLongPollRequest(request) && firstPoll)
                {
                    firstPoll = false;
                    return(ResponseUtils.CreateResponse(HttpStatusCode.OK));
                }
                else
                {
                    return(await next());
                }
            });
        }
    }
Esempio n. 2
0
 public void OnLongPoll(Func <HttpRequestMessage, CancellationToken, Task <HttpResponseMessage> > handler)
 {
     OnRequest((request, next, cancellationToken) =>
     {
         if (ResponseUtils.IsLongPollRequest(request))
         {
             return(handler(request, cancellationToken));
         }
         else
         {
             return(next());
         }
     });
 }