Request: ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž‘๋™ํ•  ๋•Œ ์ผ๊ด€๋˜๊ฒŒ ESOCKETTIMEDOUT์„ ๊ฐ€์ ธ์˜ค๋„๋ก ์š”์ฒญ(http://www.bestbuy.com)

์— ๋งŒ๋“  2017๋…„ 08์›” 10์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: request/request

์•ˆ๋…•ํ•˜์„ธ์š”,

์žฌํ˜„ํ•˜๊ธฐ ๋งค์šฐ ์‰ฝ๊ณ  ํ•ญ์ƒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค!

const request = require('request');
const axios = require('axios');
const url = 'http://www.bestbuy.com/';
request({
    url: url,
    timeout: 5000
}, (error, response, body) => {
    if (!error)
        console.log(`request got ${response.statusCode}`);
    else
        console.error(`request got an error`, error);
});

axios.get(url).then((ret) => {
    console.log(`Axios got ${ret.status}`);
});

์ถœ๋ ฅ:

Axios got 200
request got an error { Error: ESOCKETTIMEDOUT
    at ClientRequest.<anonymous> (/Users/amir/dev/test/testVideosFb/node_modules/request/request.js:819:19)
    at Object.onceWrapper (events.js:293:19)
    at emitNone (events.js:86:13)
    at ClientRequest.emit (events.js:188:7)
    at Socket.emitTimeout (_http_client.js:679:10)
    at Object.onceWrapper (events.js:293:19)
    at emitNone (events.js:86:13)
    at Socket.emit (events.js:188:7)
    at Socket._onTimeout (net.js:345:8)
    at ontimeout (timers.js:380:14) code: 'ESOCKETTIMEDOUT', connect: false }

๋‚ด ํ™˜๊ฒฝ์€ ๋…ธ๋“œ 7.7.2/8.3.0 ๋ฐ [email protected]์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์š”์ฒญ์—์„œ ์ „์†ก๋˜๋Š” ๊ธฐ๋ณธ ํ—ค๋”๋กœ ์ธํ•ด bestbuy.com์ด ์š”์ฒญ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. axios ์š”์ฒญ์ด ๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ—ค๋”๋กœ ์š”์ฒญ์ด ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

const request = require('request');
const axios = require('axios');
const url = 'http://www.bestbuy.com/';
request({
  url: url,
  timeout: 5000,
  headers: {
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "axios/0.18.0"
  }
}, (error, response, body) => {
  if (!error)
    console.log(`request got ${response.statusCode}`);
  else
    console.error(`request got an error`, error);
});

axios.get(url).then((ret) => {
  console.log(`Axios got ${ret.status}`);
});

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด ESOCKETTIMEOUT ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ €๋„ ์–ป์—ˆ๊ณ  ์ด ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ESOCKETTIMEOUT์ด ์†Œ์ผ“ ํ’€๋ง ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์—ฌ ๋…ธ๋“œ์—์„œ ์†Œ์ผ“ ํ’€๋ง์„ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

`var http = require('http');
http.globalAgent.maxSockets = ๋ฌดํ•œ๋Œ€;

var https = ์š”๊ตฌ('https');
https.globalAgent.maxSockets = ๋ฌดํ•œ๋Œ€;`

๊ทธ๋Ÿฌ๋‚˜ ์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ๋ˆ„๊ตฐ๊ฐ€ ESOCKETTIMEOUT์„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ?

๋‚˜์™€ ๊ฐ™์€ ๋ฌธ์ œ

๋น„๋™๊ธฐ ์š”์ฒญ์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด Linux์—์„œ ESOCKETTIMEDOUT ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ฐพ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ request()๋กœ ์„ค์ •:

agent: false, pool: {maxSockets: 100}

๊ทธ ํ›„์—๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ๋Š˜๋ ค์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๊ฐ™์€ ๋ฌธ์ œ +1
agent: false, pool: {maxSockets: 100} ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค

์š”์ฒญ์—์„œ ์ „์†ก๋˜๋Š” ๊ธฐ๋ณธ ํ—ค๋”๋กœ ์ธํ•ด bestbuy.com์ด ์š”์ฒญ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. axios ์š”์ฒญ์ด ๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ—ค๋”๋กœ ์š”์ฒญ์ด ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

const request = require('request');
const axios = require('axios');
const url = 'http://www.bestbuy.com/';
request({
  url: url,
  timeout: 5000,
  headers: {
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "axios/0.18.0"
  }
}, (error, response, body) => {
  if (!error)
    console.log(`request got ${response.statusCode}`);
  else
    console.error(`request got an error`, error);
});

axios.get(url).then((ret) => {
  console.log(`Axios got ${ret.status}`);
});

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰