我们有一个在Windows Server上运行的.NET 7应用程序,它使用IIS将摄像头的提要返回到前端,但与服务器上的Chrome中查看的原始输出相比,返回的流非常断断续续。
是否有任何额外的更改,可以在IIS中的代码或配置,可以使它运行更流畅?
从服务器上的Chrome中的原始相机URL观看流工作得很顺利,所以它看起来像是.NET处理流的问题。
这是我们迄今为止返回的方式:
[HttpGet("{cameraId}")]
public async Task<ActionResult> StreamCamera(int cameraId)
{
var camera = _context.Cameras.FirstOrDefault(item => item.Id == cameraId);
if (camera == null)
{
return NotFound($"No camera found for id {cameraId}");
}
using var stream = await httpClient.GetStreamAsync(camera.cameraUrl);
Response.ContentType = "multipart/x-mixed-replace; boundary=myboundary";
await stream.CopyToAsync(Response.Body);
return new HttpStatusCodeResult(200);
}
然后,在前端使用img
<img src="/api/camera/1" />
1条答案
按热度按时间n3ipq98p1#
找出一个可能的答案,在Get请求的开始,我使用
HttpContext
特性中的DisableBuffering
方法,现在返回的流是平滑的,没有延迟/缓冲。不知道这是最好的方法还是正确的地方,但它已经解决了这个问题。