问题标签 [http-streaming]

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 投票
3 回答
2288 浏览

c# - StreamReader缓冲GZIP的流式HTTP?

努力寻找遇到类似问题或类似问题的人。

reader.ReadLine()我目前正在使用具有 GZip 要求的 http (json) 流,并且从发送数据到读取数据时遇到延迟。有人建议我这可能与将数据保存在缓冲区中的解码有关?

这就是我目前所拥有的,除了延迟之外它工作得很好。

然后在 AsyncCallback 方法中我有:

它会一直等待,reader.Readline()直到收到更多数据,然后甚至会保留其中的一些数据。还收到了保持活动的换行符,当它决定阅读某些内容时,这些通常会被一次性读出。

我已经在运行 curl 命令的情况下测试了并行运行的流,curl 命令可以很好地接收和解压缩数据。

任何见解都会很棒。谢谢,

编辑 在流式阅读器上使用缓冲区大小没有运气。

编辑 也没有运气更新到 .NET 4.5 并使用

0 投票
1 回答
155 浏览

server-push - 有没有办法在 IE8 中清除 XDomainRequest.responseText

我正在实施服务器推送解决方案。

有没有办法清除IE8 的XDomainRequest.responseText,因为它充满了每个响应块?

(为了获得与 Firefox xhr.responseText 中相同的效果,其中 multipart 仅包含最后一个响应部分。)

0 投票
0 回答
337 浏览

ios - MPMoviePlayerController 试图开始奇怪的行为?

我有MPMoviePlayerController-obj 从我的视频服务器播放 hls 流。分段持续时间设置为 3 秒。

由于流的视频内容是动态转码的,所以当用户搜索到某个位置时,服务器需要几秒钟的时间来搜索原始电影文件并开始生成正确的 .ts 文件。如果我以玩家的头部为起点,就会出现问题。0:00拖放头部后,播放器发送对第一个.ts文件的请求(通过wireshark检查),并在收到第一个响应.ts文件后正常开始播放,除了播放时间不是0:00(每个测试中的值都不同)。

这可能是什么原因?

更新#1:

.m3u8 文件的内容:

.ts 文件的实际持续时间通常与目标持续时间(3 秒)不同,但我不认为这是原因。

UDPATE #2:

我确实创建了目标持续时间为 10 秒的 VOD HTTP 流,但播放器的行为方式相同。如果我寻求 00:00:00,它总是从第 5 秒或第 3 秒开始播放,所以我想原因不是来自我的服务器。

0 投票
0 回答
670 浏览

java - 在一个多部分响应中发送模型对象和二进制流

我目前正在从公司网络配置的更改中恢复,当用户通过 VPN 连接时,该更改破坏了我的文档管理应用程序中的文件传输。富客户端和我的应用服务器之间的通信使用Springs HttpInvoker实现,文件传输使用RMIIO。RemoteInputStream 只是我模型对象上的一个属性,它代表我传输的文件。

所以无论如何,我必须替换 RMIIO(DirectRemoteInputStream 不是这里的解决方案)并使用纯 HTTP 流。我想将流中的序列化模型对象和二进制数据发送到服务器,到目前为止使用多部分请求可以正常工作:

工作正常,我可以将模型对象和二进制数据发送到应用程序服务器。但是如何做相反的事情——在一个响应中返回一个模型对象和二进制数据?我读到了多部分响应以及它们如何被多个浏览器使用,但是如何使用 commons-httpclient 实现它 - 甚至更甜,使用 springs RestTemplate?

0 投票
3 回答
5101 浏览

javascript - XHR 流媒体设计关闭连接?

我正在阅读这篇文章:http ://blog.pusher.com/what-c​​ame-before-websockets /,下面的文字引起了我的注意:

XHR Streaming 在所有浏览器中都有效,XMLHttpRequest 对象的 responseText 将继续增长,直到连接关闭,这意味着最终必须强制重新连接以清除此缓冲区。

如果我理解正确,这是否意味着每当缓冲区达到一定大小时(顺便说一下,这里的实际大小是多少?),连接将自行重置以清除此缓冲区?换句话说,XHR 流与这个缓冲区的大小一样长?

有人可以确认这一点。

0 投票
1 回答
191 浏览

java - 在 java BufferedReader 中捕获连接问题(和网络 I/O 问题)?

注意:用 Scala 表示。使用 aBufferedReader处理压缩后的 HTTP 流并遍历每一行以读取传入数据。问题是,如果由于网络 I/O 问题(提供商有时会做奇怪的事情)而重置连接,那么我可以看到连接在超时前保持打开状态长达 15 秒,这是我想要的降至 1 秒。出于某种原因,我们的办公室提供商每 11 小时重置一次连接。

这是我处理连接的方式:

这里getConnection定义:

总结一下:通过java.io.BufferedReader. 在流上保持活动状态为 16 秒,但为了防止进一步的数据丢失,我希望将其缩小到 1-2 秒(基本上检查流当前是否为空白或网络 I/O)。中间的某些设备每 11 小时终止一次连接,如果有一个有意义的解决方法来最大程度地减少数据丢失,那就太好了。在HttpURLConnection连接上没有收到“终止信号”。

谢谢!

0 投票
2 回答
1822 浏览

ios - 增加 HLS(Apple HTTP Live Stream)的视频缓冲区,可能吗?

我们在服务器中使用 Wowza 3.5 流式传输视频,并使用 JW Player 播放器。

在 iPhone 和 iPad 上观看时,视频流工作正常。

我们现在要做的是,当视频在 iOS 设备上播放并且用户暂停它时,我们希望视频在暂停时缓冲(下载),这样即使用户失去与互联网的连接,他仍然可以观看视频直到。目前它只缓冲 30 秒到 1 分钟。

我们如何增加这个缓冲时间以在播放器暂停时缓冲/下载整个视频?

这在 HLS 中甚至可能吗?

0 投票
0 回答
384 浏览

django - 使用 Django 1.5 StreamingHttpResponse 传递 reportlab pdf

只是想知道是否有人使用 reportlab 和 Django 1.5 支持的新 StreamingHttpResponse 对象完成了 pdf 生成;

https://docs.djangoproject.com/en/dev/ref/request-response/#streaminghttpresponse-objects

我使用 Django 文档中描述的正常方式生成大量 pdf,并使用 HttpResponse 作为类文件对象;

https://docs.djangoproject.com/en/1.5/howto/outputting-pdf/

现在只是想知道是否可以使用 Django 中的新流对象,即使这是一个好主意?

/ 延斯

0 投票
2 回答
1943 浏览

jetty - 如何控制码头中的块?

我正在编写可能需要很长时间才能产生结果的 HTTP Web 服务。我使用嵌入式 Jetty 8.1.5 和 JAX-RS (Apache CXF)

我决定采用某种控制协议:当新请求到来时,我在一个单独的线程中开始一个长时间运行的作业,并定期以当前状态写入 HttpOutputStream 行(“CONTROL_MESSAGE:42% 完成”)

问题是 Jetty 在这里使用块编码,所以我的状态消息被缓冲并且没有用,因为它们都可以缓冲在一个块中,为客户端提供没有进展。

我不能使用 Content-Length 属性,因为我不知道最终结果的长度。HttpOutputStream.flush() 不起作用,因为 Jetty 使用内部缓冲区。

正如我所看到的,我需要一种方法来告诉 Jetty“请完成当前块并刷新它”,但不知道如何。

0 投票
2 回答
1630 浏览

ios - AVPlayer seekToTime:不使用缓冲区

我正在开发一个使用HTTP Live Streaming技术播放视频的应用程序。
为此,我使用AVPlayer,其初始化如下:

[[AVPlayer alloc] initWithURL:[NSURL URLWithString:VIDEO_URL]];

然后我检查缓冲区的状态,self.player.currentItem.loadedTimeRanges并在我的自定义视图上显示这个范围。

问题是,当在 加载的区域中倒带时[self.player seekToTime:timeToSeek toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];,加载视频就像它不在缓冲区中一样开始。