最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

模拟NodeJS中发出的“Socket挂断”

IT培训 admin 9浏览 0评论

模拟NodeJS中发出的“Socket挂断”

我想通过实现一个简单的错误服务器请求/响应方案来模拟发出的“Socket挂断错误”。

这是使用本机http模块的简单故障服务器方案。 makeRequest函数发出Socket hang up错误。

var server = http.createServer((req, res) => {
  console.log('got request');
  res.write('efgh')
  res.end();
});

server.listen(8080, function() {
  makeRequest(() => {
    server.close();
  });
});

function makeRequest(cb) {
  var req = http.request('http://localhost:8080', function(res) {
    console.log('got response')
    res.resume();
    cb();
  })
  req.write('abcd');
}

关于如何模拟发出此错误的任何建议,以便我可以在下面的request模块模式中处理它?最终的测试是运行下面的代码块并验证通过捕获发出的Socket hang up错误,pipe命令将不会执行并失败:

request('https://localhost:8080/doodles.zip')
    .on('error', function(error){ 
        console.log('error requesting base zip file '); 
        console.log(error);
    })
    .on('data', function(chunk){
        console.log('A new chunk: ', chunk);
    })
    .on('end', function(){
        // console.log(output);
        console.log('End GET Request');    
    })    
    .pipe(fs.createWriteStream('doodles.txt'))
        .on('error',function(error){

            console.log('error streaming base zip file');
            console.log(error);

        })
        .on('close',function(){
            console.log('on close of zip pipe to txt');
        });
回答如下:

来自文档:https://github/nodejs/node-v0.x-archive/blob/ba048e72b02e17f0c73e0dcb7d37e76a03327c5a/lib/_http_client.js#L164我希望这就是你的意思。祝好运

function createHangUpError() {
  var error = new Error('socket hang up');
  error.code = 'ECONNRESET';
  return error;
}

模拟NodeJS中发出的“Socket挂断”

我想通过实现一个简单的错误服务器请求/响应方案来模拟发出的“Socket挂断错误”。

这是使用本机http模块的简单故障服务器方案。 makeRequest函数发出Socket hang up错误。

var server = http.createServer((req, res) => {
  console.log('got request');
  res.write('efgh')
  res.end();
});

server.listen(8080, function() {
  makeRequest(() => {
    server.close();
  });
});

function makeRequest(cb) {
  var req = http.request('http://localhost:8080', function(res) {
    console.log('got response')
    res.resume();
    cb();
  })
  req.write('abcd');
}

关于如何模拟发出此错误的任何建议,以便我可以在下面的request模块模式中处理它?最终的测试是运行下面的代码块并验证通过捕获发出的Socket hang up错误,pipe命令将不会执行并失败:

request('https://localhost:8080/doodles.zip')
    .on('error', function(error){ 
        console.log('error requesting base zip file '); 
        console.log(error);
    })
    .on('data', function(chunk){
        console.log('A new chunk: ', chunk);
    })
    .on('end', function(){
        // console.log(output);
        console.log('End GET Request');    
    })    
    .pipe(fs.createWriteStream('doodles.txt'))
        .on('error',function(error){

            console.log('error streaming base zip file');
            console.log(error);

        })
        .on('close',function(){
            console.log('on close of zip pipe to txt');
        });
回答如下:

来自文档:https://github/nodejs/node-v0.x-archive/blob/ba048e72b02e17f0c73e0dcb7d37e76a03327c5a/lib/_http_client.js#L164我希望这就是你的意思。祝好运

function createHangUpError() {
  var error = new Error('socket hang up');
  error.code = 'ECONNRESET';
  return error;
}
发布评论

评论列表 (0)

  1. 暂无评论