问题标签 [pushstreamcontent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1380 浏览

asp.net - PushStreamContent 与任务操作?

任何人都可以帮忙,我希望从asp.net web api返回一个异步流,看起来有不止一种方法,或者我不明白其中的区别。

例如,您可以对标准 HttpResponseMessage 执行 PushStreamContent ,或者看起来您可以实现 Task 和 await 等。

有什么区别??

即使是少量数据,我是否应该始终返回流?

我是否应该一直使用异步任务?

似乎很混乱,我用谷歌搜索了差异,但似乎找不到具体的答案。

0 投票
1 回答
754 浏览

c# - PushStreamContent 以块的形式发回结果?

我正在使用 MVC4 中的新 PushStreamContent 实体将通知从我的 Web 服务器流式传输回多个监听 iOS 客户端(它们正在使用 NSURLConnection)。发送的消息是 JSON。当我发送小于 1024 字节的消息时,消息按预期发送。但是,发送大于此大小的消息会导致客户端以多个块接收消息,每个块为 1024 字节。

我想知道我的 iOS 客户端使用这些返回的多条消息的最佳方式是什么?有没有办法让 NSURLConnection 为我聚合结果,或者我是否需要实现一些得到结果的东西,检查它是否是有效的 json,如果不等待下一个结果并附加上一个结果,然后继续直到它有效?有什么更好的方法来做到这一点?

0 投票
1 回答
524 浏览

asp.net-web-api - 在流式传输视频文件时,文件被另一个使用 PushStreamContent 的进程锁定..如何解决它

我正在尝试流式传输视频文件。当我在浏览器的另一个选项卡中打开相同的视频文件时,我收到消息“文件正在被另一个进程使用”。如果我在 file.open 方法中使用 FileShare.ReadWrite,则错误消失但视频无法在浏览器中播放。有人可以吗?帮助 。

0 投票
2 回答
10615 浏览

c# - HttpClient 和 PushStreamContent

我将 PushStreamContent 与我的 REST API (ASP.NET Web API) 一起使用,效果很好。HttpClient 可以在服务器处理完整请求之前请求资源并获取 HTTP-Response(服务器仍然写入推送流)。

作为 HttpClient,您必须做一件小事:使用 HttpCompletionOption.ResponseHeadersRead。

现在我的问题是:是否有可能以另一种方式做到这一点?从 HttpClient -> 通过推送流将数据上传到 Web api?

我按如下方式实现它,但 web api 不会在客户端关闭流之前获取请求。

AsyncStream 是我的委托类:

这对于 Push-Stream 是必需的。

这有可能吗?在最后一个字节被写入流之前,HttpClient 不会将请求发送到 web api...

我需要做什么?问题是在客户端还是在服务器/asp.net web api端?

编辑:这是 WriteToStream 的实现(但我不使用磁盘中的文件,而是使用内存流'myMemoryStream'(在构造函数中传递):

也许我必须做点什么:HttpContent 内容,TransportContext 上下文?

0 投票
1 回答
2002 浏览

asp.net-web-api - 在 Web API 中检测客户端与 PushStreamContent 的断开连接

尽管 HTTP 是无状态协议,但有一个 PushStreamContent 类可以促进服务器发送事件,您可以在此处阅读。Web API 实现可以存储客户端流并定期发送推送更新。但是,检测客户端何时断开连接有点问题。

本次讨论中,Henrik Nielsen 指出:

检测到 TCP 连接已被重置是主机(ASP、WCF 等)监控的事情,但在 .NET 4 中,ASP 和 WCF 都没有告诉我们(Web API 层)这件事。这意味着检测断开连接的唯一可靠方法是实际向其写入数据。这就是为什么我们在示例中的写操作周围有 try/catch。也就是说,响应将在失败时而不是之前被清理。

在 .NET 4.5 中有一种检测客户端断开连接的机制,但我还没有尝试过。

快进两年半到今天。有谁知道这种机制是什么,以及它是否有效?

0 投票
1 回答
1736 浏览

c# - WebAPI PushStreamContent 远程主机关闭连接

我正在尝试在 MVC 站点中使用 WebAPI 来使用 PushStreamContent 对象流式传输视频。我已经阅读了几个关于这个的方法(包括这个经常被引用的帖子@strathweb.com,但似乎仍然无法让它工作。

目前,视频无法在浏览器中播放。一旦用户将鼠标移到视频控件上,它们就会被禁用。服务器上出现了两个奇怪的问题/症状:

首先,在页面加载时,即使用户还没有尝试实际播放视频(他们只是看到标准的 HTML5 视频占位符 - 他们应该点击播放来观看视频),服务器似乎也会立即将整个文件流回。视频标签中未指定自动播放。我可以通过流循环中的 debug.writeline 调用看到这种情况。

其次,当用户确实点击播放时,会出现这个错误:远程主机关闭了连接。错误代码为 0x800704CD。

这是我的代码:

这是我的视频标签:

0 投票
3 回答
2330 浏览

c# - ASP.NET Web API:PushStreamContent 刷新不刷新

PushStreamContent在 ASP.NET Web API 中使用将事件从服务器推送到客户端(使用服务器发送事件)。在每个发送的事件之后,我调用FlushStream缓冲的数据推送到客户端。但是,我注意到冲洗不会(总是)发生。有时,部分数据会发送到客户端,其余的会在写入下一个事件时发送(可能会在几秒钟后发生)。

这是一个代码示例:

如何禁用数据缓冲或强制刷新数据?

0 投票
0 回答
1343 浏览

c# - 等待流 WriteAsync 方法正在锁定/冻结

我尝试使用 PushStreamContent 和 WebApi 流式传输音频。为此,我编写了一些代码。主要代码;

AudioStreamHelper 代码;

当我调试这段代码时;在 AudioStreamHelper 类 WriteToStream 方法和await outputStream.WriteAsync(buffer, 0, bytesRead);行中,我的线程被锁定/冻结并且没有响应。我检查当前线程 ID。是一样的。(在 Api 和 Helper 类中)此外,此代码适用于 System.Net.Http.Formattion(版本 4.0.0.0)的另一个演示应用程序我的项目使用 System.Net.Http.Formattion(版本 5.1.0.0)关联有这个条件?我不明白这种情况。

0 投票
3 回答
27048 浏览

angularjs - 如何下载 zip 文件

我正在尝试从我的 web api 控制器下载一个 zip 文件。它正在返回文件,但是当我尝试打开时,我收到一条消息说 zipfile 无效。我看过其他关于这个的帖子,响应是添加 responseType: 'arraybuffer'。仍然不适合我。我也没有在控制台中收到任何错误。

api控制器

更新 图片

0 投票
2 回答
901 浏览

c# - zip 文件中的 Pdfs 已损坏

我正在尝试制作一个包含 pdf 的 zip 文件。当我提取 zip 文件时,pdf 文件已损坏。我在“outputStream”上放了一只手表。这是第一个例外

“outputStream.Length”引发了“System.NotSupportedException”类型的异常 long

这是整个手表 手表

代码