我想知道使用Node&amp;缓冲区将传入的客户端数据用于服务器是否有意义。我的服务器和客户端是基于TCP的,我使用<EOF>
来确定消息的结束。该消息始终是字符串化JSON。
例如:{"name":"Bob"}<EOF>
如果整个消息没有通过,我应该使用Node Buffer来建立数据还是常规字符串?
如果它是缓冲区,我不认为我理解如何正确构建一个缓冲区。这是我的Client
构造函数,每次套接字连接到节点服务器时都会创建。
constructor(socket){
var self = this;
// properties
this.socket = socket;
this.buffer = Buffer.alloc(1024);
this.dataEnd = '<EOF>';
// append <EOF> to every msg
this.socket.write = function(msg){
msg += "<EOF>";
return Socket.prototype.write.call(this, msg);
};
// build up buffer
this.socket.on('data', function(data){
var buffLen = self.buffer.length;
var dataBuffer = Buffer.from(data);
if(buffLen + dataBuffer.length < 1024){
if(data.indexOf(self.dataEnd) === -1){
self.buffer.concat(dataBuffer);
}
}
});
return this;
}