在node.js中,如何识别缓冲区是二进制还是文本?
下面是node.js中redis pubsub的代码。我在读取了一个文件和一个纯文本后发布了一个二进制数据,有没有办法确定消息上接收到的缓冲区是二进制还是文本在node.js中,如何识别缓冲区是二进制还是文本?,node.js,redis,Node.js,Redis,下面是node.js中redis pubsub的代码。我在读取了一个文件和一个纯文本后发布了一个二进制数据,有没有办法确定消息上接收到的缓冲区是二进制还是文本 var redis = require("redis"), pub = redis.createClient(null, null, { detect_buffers: true }), sub = redis.createClient(null, null, { detect_bu
var redis = require("redis"),
pub = redis.createClient(null, null, {
detect_buffers: true
}),
sub = redis.createClient(null, null, {
detect_buffers: true
}),
fs = require("fs");
sub.subscribe("abc");
sub.on("subscribe", function(channel, count) {
fs.readFile("IMG_2693.JPG", function(err, data) {
pub.publish("abc", data);
});
pub.publish("abc", "hello");
});
sub.on("message", function(channel, data) {
// Can I identify if it is binary data or text?
console.dir(data);
});
谢谢 Redis对于数据编码是不可知的。它不关心数据是二进制还是文本,并且无法将此信息返回或转发给客户端
我认为处理这个问题的一个经典方法是在负载中添加一个包含元信息(几个字节)的头。例如,您还可以存储数据类型,一个知道有效负载是否被压缩的指示器,等等…Redis对于数据编码是不可知的。它不关心数据是二进制还是文本,并且无法将此信息返回或转发给客户端 我认为处理这个问题的一个经典方法是在负载中添加一个包含元信息(几个字节)的头。例如,您还可以存储数据类型,一个知道有效负载是否被压缩的指示器,等等…这可能会有帮助这可能会有帮助