gpt4 book ai didi

javascript - 通过 websockets 使用 javascript 传输文件

转载 作者:太空狗 更新时间:2023-10-29 15:42:18 26 4
gpt4 key购买 nike

您好,我正在尝试传输文件。我有一些程序将文件转换为二进制文件并使用 C++ 通过网络传输它们。我想知道我是否能够使用 javascripts 和 websockets 传输文件?任何有关如何将我的 c++ 程序集成到 javascript 的示例将不胜感激。谢谢。

最佳答案

Javascript 有两种新的二进制类型:类型化数组(数组缓冲区)和 Blob(基本上是文件)。

WebSockets 支持发送和接收类型化数组和 blob。

要使用 WebSocket 在两个浏览器之间传输数据,您需要一个服务器供它们连接(此时浏览器 WebSocket 支持仅是客户端)。

如果您现有的 C++ 服务器可以处理文件传输,那么您应该能够相当轻松地向其添加 WebSocket 服务器支持。您可以在此页面上找到 WebSocket 客户端和服务器实现:http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations

在 JavaScript 中,要建立与 WebSocket 服务器的连接,您需要执行如下操作:

ws = new WebSocket("ws://100.101.102.103");

send() 方法支持普通字符串、类型化数组或 blob。发送类型化数组和 blob 将导致服务器接收到的帧为二进制帧(操作码 = 2)。

ws.send(myTypedArray);

要接收消息,您需要注册一个消息处理程序:

ws.onmessage = function (evt) {
console.log("Got ws message: " + evt.data);
};

如果服务器发送二进制帧/消息,则事件的 onmessage 数据属性将包含类型化数组或 blob,具体取决于 binaryType 属性的设置。您可以像这样更改接收到的二进制数据的类型:

ws.binaryType = "blob"; // or "arraybuffer"

关于javascript - 通过 websockets 使用 javascript 传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390021/

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