将 ArrayBuffer 的一部分转换为字符串

Convert part of an ArrayBuffer to a string

我有一个 C# 应用程序,它使用 WebSockets 向我的 Javascript 客户端发送一个 ArrayBuffer。 第一个 2 字节是 int 值(8 位)。

接下来的 17 个字节代表 17 个字符的字符串。

剩下的就是图片数组了。

现在,我可以读取第一个 2 个字节来获取我的整数。 我也可以阅读图像。 如何读取从 2 索引(使用 1 的基本索引)开始的字符串值以及以下 17 个字节?

所以,到目前为止我的代码是:

var len = e.data.byteLength;
var dv = new DataView(e.data);
var liveViewIndex = dv.getInt8(0);
var tripped = dv.getInt8(1);
//need to get 17 char string here!!
var frame = e.data.slice(19, len - 19);
desktopImage.src = 'data:image/jpeg;base64,' + base64ArrayBuffer(frame);

谢谢

鉴于字符串被编码为简单的 ASCII,以下应该有效:

var string = String.fromCharCode.apply(String, new Uint8Array(e.data, 2, 17));

它首先创建一个Uint8Array view on the interesting part of the buffer, and then uses it as arguments to String.fromCharCode