gpt4 book ai didi

node.js - 通过 Socket.IO 发送缓冲区的问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:45:38 25 4
gpt4 key购买 nike

我正在尝试通过 socket.io 向我的浏览器发送一个缓冲区。据说这是从 1.0 开始支持的。

服务器代码:

var tempBuffer = new Buffer(10);
for (var i=0; i<10; i++) {
tempBuffer[i] = i;
}
io.sockets.emit('updateDepth', { image: true, buffer: tempBuffer });

客户端代码:

socket.on('updateDepth', function(data) {
console.log("update depth: " + data.buffer + ", " + data.buffer.length);
});

除了 data.buffer 是一个 ArrayBuffer(不是 Buffer)并且长度未定义(ArrayBuffer 似乎不包含任何内容)之外,在客户端一切看起来都不错。

我是否遗漏了一些明显的东西,或者这不是它应该如何工作的?非常感谢!

最佳答案

事实证明这工作正常。由于某种原因,Buffer 不允许我直接访问它并且它的长度未定义。不过,将其转换为 Uint8Array 效果很好。我猜这是因为即使 socket.io 现在将发送 Buffer 对象,也不能保证您的客户端 javascript 知道如何处理它们。

这确实有效:

socket.on('updateImg', function(data) {
var imgArray = new Uint8Array(data.buffer);
console.log("update img: " + data.buffer + ", " + data.buffer.length);
});

关于node.js - 通过 Socket.IO 发送缓冲区的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498114/

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