gpt4 book ai didi

node.js - 如何通过 Websocket 发送文件以及附加信息?

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:12 27 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,用于从管理界面将图像、视频等发送到两个显示器。我在服务器端使用 Node.js 中的 ws 。我已经实现了选择服务器上可用的图像和外部 URL 并将它们发送到客户端,但我也希望能够通过文件输入直接发送从设备中选择的图像。我设法使用 base64 来做到这一点,但我认为效率相当低。

目前,我发送一个字符串化的 JSON 对象,其中包含资源必须发送到的客户端、资源类型和资源本身,在服务器中解析它并将其发送到适当的客户端。我知道我可以将 Websocket binaryType 设置为 blob 并仅发送 File 对象,但随后我无法告诉服务器必须将其发送到哪个客户端。我尝试使用 typeson 和 BSON 来完成此任务,但没有成功。

还有其他方法吗?

最佳答案

您可以通过 WebSocket 发送原始二进制数据。

管理起来非常容易。

一种选择是在前面添加一个“魔术字节”(将消息标记为非 JSON 的标识符)。例如,在二进制消息前面添加 B 字符。

服务器所要做的就是在收集二进制数据之前测试第一个字符(如果魔术字节不存在,则可能是正常的 JSON 消息)。

更严格的实现将在魔术字节后附加一个 header (即文件名、总长度、发送数据的位置等)。

这允许在断开连接时恢复上传(仅发送未确认已接收的部分。

在处理之前,您的服务器需要将数据拆分为magic byteheaderbinary_data。但这很容易完成。

关于node.js - 如何通过 Websocket 发送文件以及附加信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com