2016-01-21 133 views
3

我正在使用流式方法來模擬服務器和客戶端之間的實時通信。當我直接從web api獲取流時,它工作正常。但是當我嘗試通過azure api管理接收消息時,它會返回最後~20分鐘的消息包。 它的Web API方法:通過Azure API管理流式傳輸

[HttpGet] 
    [Route("subscribe/{subscription}")] 
    public HttpResponseMessage Subscribe(string subscription) 
    { 
     PushStreamContent eventStream = new PushStreamContent(delegate (Stream stream, HttpContent content, TransportContext context) 
     { 
      Subscribe(subscription, stream); 
     }, new MediaTypeHeaderValue("text/event-stream")); 
     HttpResponseMessage message = Request.CreateResponse(HttpStatusCode.OK); 
     message.Content = eventStream; 

     return message; 
    } 

而獲得流我送的XMLHttpRequest從谷歌瀏覽器的控制檯:

var request = new XMLHttpRequest() 
request.open('get', 'https://{api}.azure-api.net/subscribe/hi', true) 
request.setRequestHeader('Ocp-Apim-Subscription-Key','{subscription_key}') 
request.onabort = function() { console.log('abort') } 
request.onerror = function() { console.log('error') } 
request.onprogress = function(e) { console.log(e) } 
request.onload = function() { console.log('done') } 
request.send() 

那麼,它可能以某種方式配置蔚藍API管理來返回流沖洗消息() ?

回答

1

目前還不行,但我們很快就會增加對流式場景的支持。我們會將公告發布到update feed