nodejs中websocket传输大量数据

用nodejs当websocket server时,当客户端传输的数据量比较大时,数据会分片到达服务器,这时socket的data处理函数接收到的只是整个数据中的一部分,因此我们要将分片的数据拼合起来再做处理。当最后的数据到达时,数据的末尾是\ufffd,所以可以靠判断数据中是否包含\ufffd来指示整个数据是否已经全部接收。

var message = '';

socket.on('data', function(chunk) {   
    message += chunk;
    var index = message.indexOf('\ufffd');
    if(index !== -1) {
        console.log(message.slice(0, index)); 
        // console.log(message.slice(1, index)); 
        // Do your logic here
        message = message.slice(index + 1);
    }
});

nodejs中websocket传输大量数据》上有2条评论

  1. tom

    去监听\ufffd是不是多此一举?记得不错的话,应该会有end事件的。
    socket.on(‘end’,function(){
    //data are all received
    })

发表评论