gpt4 book ai didi

Node.js 和 Socket.io - 如何使用 emit 函数发送数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:38 25 4
gpt4 key购买 nike

我正在使用 Node.js(版本 7.9.0)和 socket.io(版本 1.7.3)并尝试将数组“softwareBez”和“softwareVersion”从服务器发送到客户端。客户端应该将数组的内容输出为文本。

这是我的代码:

---服务器端---

var softwareBez = new Buffer(recTelegramm[2]);              // Create array with the length recTelegramm[2]
var softwareVersion = new Buffer(recTelegramm[3]); // Create array with the length recTelegramm[3]

// Fill the array softwareBez
for(var i=0; i<recTelegramm[2]; i++)
{
softwareBez[i] = recTelegramm[9+i];
}
//

// Fill the array softwareVersion
for(var i=0; i<recTelegramm[3]; i++)
{
softwareVersion[i] = recTelegramm[9+recTelegramm[2]+i];
}
//


// Output for Tests
console.log("softwareBez: ", softwareBez , "\n");
console.log("softwareVersion: ", softwareVersion , "\n");

// Send Data to Client
io.sockets.emit('P_Sysinfo', {softwareBez: [softwareBez], softwareVersion: [softwareVersion]});

console.log 的输出显示数组填充正确。

---客户端---

$('#content').append
(
$('<li></li>').append($('<span>').text('Softwarebezeichnung: ' + data.softwareBez)),
$('<li></li>').append($('<span>').text('Softwareversion: ' + data.softwareVersion))
);

网络浏览器中的输出是:

Softwarebezeichnung: [object ArrayBuffer]
Softwareversion [object ArrayBuffer]

那么数组的传输似乎出了问题?在这里我发现了一些我认为是解决方案的东西:Are arrays allowed in the socket.io emit function?因此,emit 函数(服务器端)中的“softwareBez: [softwareBez]”和“softwareVersion: [softwareVersion]”位于括号“[”和“]”中。但是有或没有这些括号 - 同样的问题....

感谢您的帮助

最佳答案

非常感谢,这就是问题所在......

在服务器端执行以下操作:

var softwareBez = new Buffer(recTelegramm[2]);              // Create array with the length recTelegramm[2]
var softwareVersion = new Buffer(recTelegramm[3]); // Create array with the length recTelegramm[3]

还有一个问题:数组中有 dec 数字。是否有一种简单的方法可以通过 ASCII 表将这些 dec 数字转换为文本?有给定的函数吗?

关于Node.js 和 Socket.io - 如何使用 emit 函数发送数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43612955/

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