问题标签 [multipart-mixed-replace]

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 投票
2 回答
2414 浏览

http - 使用边界分隔符进行 HTTP 服务器响应

使用 Poco,我正在尝试模拟 AXIS 相机网络服务器,它根据客户端请求发送 jpeg 帧。

每个 Web 响应都应该使用 Content-Type: multipart/x-mixed-replace 和预定义的边界进行编码。

我怎样才能用 Poco 做到这一点?谢谢。

0 投票
1 回答
2156 浏览

resteasy - 如何在 RESTEasy 响应中获得混合多部分?

我正在尝试使用resteasy。虽然我能够将混合多部分作为请求发送到 Web 服务,但我无法在响应中获得混合多部分。例如:在单个响应中请求文件(字节 [] 或流)和文件名。以下是我测试过的:

服务代码:

客户端代码:

输出如下 - 能够看到具有不同内容类型的 2 个不同对象,但无法分别提取它们。

如何从响应中提取 2 个对象?

更新:

尝试了以下方法来提取不同的部分 - 使用“边界”来打破 MultipartStream;使用内容类型字符串来提取 appprop 对象。

这是正确的方法吗?

更新2: 上面的逻辑似乎有效。但是在收到来自网络服务的响应时又遇到了另一个问题。我在响应中找不到任何处理此类问题的参考资料。逻辑假定零件类型只有一个零件。如果响应中有 2 个 JSON 部分,则很难确定哪个部分是什么。换句话说,虽然我们可以在创建响应时添加带有键名的部分,但我们无法在客户端提取键名。有什么线索吗?

0 投票
2 回答
5530 浏览

javascript - 将 multipart/x-mixed-replace 与 XMLHttpRequest 一起使用

Multipart/x-mixed-replace 是一种 MIME 类型,用于具有多个部分的内容,每个部分替换前一部分。这可以用来实现服务器推送/反向 ajax/comet,显然至少应该在 Firefox 中工作。为了测试这一点,我设置了一个服务器,它产生以下输出,每个部分之间有延迟:

在客户端,这是我在 Firefox 中运行的 JavaScript 代码:

我希望每个 responseText 都替换前一个,但似乎它们实际上是附加在一起的。随着服务器产生更多输出,responseText 的大小会不断增加。有没有办法只获得最新更换的零件?

0 投票
1 回答
1512 浏览

node.js - nodejs http response.write:可能内存不足吗?

如果我有以下代码每 10 毫秒重复向客户端发送数据:

如果客户端接收数据很慢会发生什么?

服务器会出现内存不足错误吗?

编辑:实际上连接保持活动状态,服务器无休止地发送jpeg数据(HTTP multipart/x-mixed-replace header + body + header + body.....)
因为node.js response.write是异步的,
所以有些用户猜测它可能会将数据存储在内部缓冲区中并等待低层告诉它可以发送,
所以内部缓冲区会增长,对吗?

如果我是对的,那么如何解决这个问题?
问题是 node.js 在为单个写入调用发送数据时不会通知我。

换句话说,我不能告诉用户这种方式理论上没有“内存不足”的风险以及如何解决它。


更新: 通过user568109给出的关键字“drain”事件,我研究了node.js的来源,得出结论:
确实会导致“out-of-memory”错误。我应该检查 response.write(...)===false 的返回值,然后处理响应的“drain”事件。

http.js:

0 投票
0 回答
212 浏览

javascript - 如何检测浏览器是否支持 multipart/x-mixed-replace mime-type?

我在我的站点中使用了一个需要使用 multipart/x-mixed-replace mime-type 的功能。

如何检测浏览器是否支持 multipart/x-mixed-replace mime-type?

笔记:

我不是在寻找浏览器检测,而是在寻找功能检测

0 投票
1 回答
517 浏览

elixir - 如何使用 Elixir/HTTPoison 或 Hackney 获得视频流?

我正在尝试使用 Elixir / HTTPoison 从凸轮获取流并将其转储到文件中。网址为xxxx/axis-cgi/mjpg/video.cgi?duration=1&resolution=320x240

使用 DHC(Chrome 插件)中的 url,我可以拥有以下内容:

响应 200 OK

HEADERS Cache-Control: no-cache Pragma: no-cache Expires: Thu, 01 Dec 1994 16:00:00 GMT Connection: close Content-Type: multipart/x-mixed-replace; 边界=myboundary X-Time-Offset: 62044.312573 pretty COMPLETE REQUEST HEADERS Accept: / Accept-Encoding: gzip, deflate, sdch Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en; q=0.4 Content-Type: application/xml User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 注意:XHR 会自动添加像 Accept, Accept-Language、Cookie、User-Agent 等

原始格式的正文向我展示了很多由--myboundary分隔的二进制 jpeg 图像。

--myboundary

内容类型:图片/jpeg

内容长度:11848

����JFIF�� W�u]7W�u]7�� �2�̎TY"��C

现在,我想尝试用 Elixir 获得同样的效果。

我确实有以下回应,

我确实尝试过没有基本身份验证,但结果相同。

我还不明白这个身份验证错误发生了什么。当然我误解了一些东西,有人可以请教我这个问题吗?

亲切的问候,

皮埃尔

0 投票
0 回答
1008 浏览

javascript - 在 IE9 中使用 JSON 数据和文件创建多部分/混合请求

我们可以在不支持 formData 的 IE 9 浏览器中构建类似于下面的请求吗?

0 投票
1 回答
8926 浏览

html - multipart/x-mixed-replace 内容类型的视频流问题

美好的一天,我使用 esp8266 模块作为服务器,带有摄像头模块通过 wifi 连续传输 jpeg 图像。我想在同一个浏览器窗口中同时拥有流式视频、文本和按钮。所以我用 HTML 创建了网页,并为流窗口、文本和按钮使用了“multipart/x-mixed-replace”内容类型,因为我读到这种类型接受各种子类型,如 html 和图像。流媒体窗口有效,但...

  1. 当我将视频请求发送到服务器时,我会看到一段时间的视频流,然后屏幕会在几分之一秒内显示文本和按钮,然后再次显示视频流并继续。它们永远不会一起出现在同一个窗口中。它们只是闪烁。
  2. 流媒体窗口位于浏览器选项卡的中心,周围有灰色背景色,我不知道如何更改位置和颜色,也不知道它们为什么会这样。
  3. 当我打开浏览器的“检查元素”选项以检查从服务器发送的代码(我编写的 HTML 代码)时,我注意到,在标签内,有 4 行我没有在代码中编写的 HTML 代码。他们不知从何而来,我不知道如何阻止他们。

总而言之,我想做的是将流式视频窗口、文本和按钮同时放在同一个浏览器窗口中。

下面是我编写的 HTML 代码和流媒体窗口的图像,我认为我对内容类型做错了,或者我没有以正确的方式使用它。

然后不断重复上述过程,以创建带有按钮和文本的视频流。至少是这样的想法...

感谢您的时间。

[1][流的 HTML 代码 + 文本 + 按钮]
[2][我的笔记本电脑从服务器接收的 HTML 代码]

[1]:https ://i.stack.imgur.com/l4GSa.jpg [2]:https ://i.stack.imgur.com/S8fTO.jpg

0 投票
1 回答
2955 浏览

node.js - 在 nodejs 中发送多部分/混合请求

我正在尝试向 azure Direct Batch Send ( https://msdn.microsoft.com/en-us/library/azure/mt734910.aspx ) 发送多部分/混合请求。我正在使用 npm 请求模块。

我想提出什么要求:-

我尝试过的:-

第一种方法:-

错误:- 第一个参数必须是字符串、缓冲区、ArrayBuffer、数组或类似数组的对象

第二种方法: -

错误:options.uri 是必需的参数

请建议我向 Azure Direct Batch Send Service 发送多部分/混合请求的正确和更好的方法。谢谢

0 投票
1 回答
1533 浏览

node.js - 在 Node.js 中发出 HTTP 请求并接收 multipart/x-mixed-replace 响应

我需要向外部服务器发出 HTTP GET 请求以开始接收事件。请求后,我立即得到multipart/x-mixed-replace回复。当一个事件发生时,它作为 XML 消息连同指示该部分结束的边界一起发送。

现在我必须在 Node.js 中实现它。对于我使用的正常请求node-rest-client,调用它的get()方法并将我的逻辑放入方法的回调中。问题是只有在响应完成时才会执行回调,并且multipart/x-mixed-replace直到连接关闭才执行。

是否有其他 NPM 模块可以解决问题?我搜索了 NPM 注册表,但我发现的结果似乎不适合该任务。还是在纯Node中做更好?我是这样,请举个例子。