2016-01-21 131 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