Javascript 有两种新的二进制类型:类型化数组(数组缓冲区)和 Blob(基本上是文件)。
WebSocket 支持发送和接收类型化数组和 blob。
要使用 WebSocket 在两个浏览器之间传输数据,您需要一个服务器供它们连接(此时浏览器 WebSocket 支持仅是客户端)。
如果您有一个用 C++ 编写的现有服务器来处理文件传输,那么您应该能够相当轻松地向其添加 WebSocket 服务器支持。您可以在此页面上找到 WebSocket 客户端和服务器实现:http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations 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"