使套接字响应为十六进制字节

时间:2018-12-22 15:42:51

标签: node.js socket.io

我如何以二进制缓冲区的形式响应?

sock.on('data', function(data) {
        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        let response = new Buffer("0000", "base64");
        setTimeout(function() {
            sockets.forEach(function(sock, index, array) {
                sock.write(response);
            });
        }, 3000);
    });

因为现在我得到的是十六进制字节:30303030

1 个答案:

答案 0 :(得分:0)

是的,您得到30303030,因为字符“ 0”的十六进制为0x30。尝试

Buffer.from("00aabbcc","hex")

Buffer.from([0x0,0xaa,0xbb,0xcc])

,请不要使用新的Buffer(),它不安全且已弃用。 https://nodesource.com/blog/understanding-the-buffer-deprecation-in-node-js-10/