xPomaHx
@xPomaHx
1vs9

Почему медленно соединяет тсп, где именно ограничение?

spoiler
const net = require('net');

const TCP_CONNECTION_TIMEOUT = 5555;

const checkTcp = (port, ip) => new Promise((resolve) => {
  const client = new net.Socket();
  client.setTimeout(TCP_CONNECTION_TIMEOUT);
  client.connect(port, ip, () => {
    resolve(true);
    client.destroy();
  });
  client.on('error', () => {
    resolve(false);
    client.destroy();
  });
});

console.time(1);
await Promise.all(proxies.map(({port, ip})=>checkTcp(port, ip) ))
console.timeEnd(1);


Чекаю прокси на просто установку соединения, 3к проверяются 2 минуты, почему так медленно, как отдебажить чтобы понять где узкое место.
Сейчас могут быть нода, докер, виртуалка, хост система с виндой, роутер, провайдер.
По идее если я одновременно открываю всё, то максимальное время это их максимальный таймаут значит 5 сек.
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
xPomaHx
@xPomaHx Автор вопроса
1vs9
setTimeout просто так не работает, он эмитит событие, а что делать с ним нужно думать самому,
не дочитал доку https://nodejs.org/api/net.html#net_socket_settime...

spoiler
socket.setTimeout(3000);
socket.on('timeout', () => {
  console.log('socket timeout');
  socket.end();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы