【问题标题】:Node.js and Socket.io - how to send an array using the emit functionNode.js 和 Socket.io - 如何使用 emit 函数发送数组
【发布时间】:2017-09-22 14:27:58
【问题描述】:

我正在使用带有 socket.io(版本 1.7.3)的 Node.js(版本 7.9.0)并尝试将数组“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))
        );

Webbrowser 中的输出是:

Softwarebezeichnung: [object ArrayBuffer]
Softwareversion [object ArrayBuffer]

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

感谢您的帮助

【问题讨论】:

  • 我不认为发出问题。你是否尝试发送一个简单的数组而不是缓冲区?

标签: node.js socket.io


【解决方案1】:

非常感谢,这是问题....

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

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 表上的文本?任何给定的功能左右?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 2012-02-03
    • 2018-08-10
    • 2012-02-10
    • 1970-01-01
    • 2014-03-03
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多