我正在开发一个 Web 应用程序,用于从管理界面将图像、视频等发送到两个显示器。我在服务器端使用 Node.js 中的 ws 。我已经实现了选择服务器上可用的图像和外部 URL 并将它们发送到客户端,但我也希望能够通过文件输入直接发送从设备中选择的图像。我设法使用 base64 来做到这一点,但我认为效率很低。
目前,我发送一个字符串化的 JSON 对象,其中包含必须向其发送资源的客户端、资源类型和资源本身,在服务器中解析它并将其发送到适当的客户端。我知道我可以将 Websocket binaryType 设置为 blob 并仅发送 File 对象,但是我无法告诉服务器必须将其发送到哪个客户端。我尝试使用 typeson 和 BSON 来完成此任务,但没有成功。
还有其他方法吗?
您可以通过 WebSocket 发送原始二进制数据。
这很容易管理。
一种选择是在前面添加一个“魔术字节”(将消息标记为非 JSON 的标识符)。例如,在二进制消息前面加上B
特点。
服务器所要做的就是在收集二进制数据之前测试第一个字符(如果魔术字节不存在,则它可能是正常的 JSON 消息)。
更严格的实现将在魔术字节之后附加一个标头(即文件名、总长度、发送数据的位置等)。
这允许在断开连接时恢复上传(仅发送未确认已接收的部分。
您的服务器需要将数据分成magic byte
, header
and binary_data
处理前。但这很容易实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)