节点js缓冲输入数据

时间:2016-10-07 01:11:49

标签: node.js

我想知道使用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;
}

0 个答案:

没有答案