Node.js UDP и HTTP конфликт - PullRequest
       21

Node.js UDP и HTTP конфликт

0 голосов
/ 07 апреля 2020

У меня параллельно работают сервер udp и http-сервер (с использованием express) (но на разных портах) с nodejs (с этого момента я буду называть этот хост). Отправка / получение для каждого из них работает хорошо.

Но в следующем конкретном случае я заметил, что UDP-пакеты не принимаются клиентом: - клиент A отправляет http-запрос на хост - host получает запрос и отправляет пакет udp, закрывает http-соединение - Пакет udp не получен клиентом B

// incoming http get request from client A
async (req, res) => {
    udpserver.send('clientB', '..') // is never received by Client B
    res.end()
}

Если я добавлю небольшую задержку примерно за 200 мс до отправки пакета udp, все будет работать, как и ожидалось.

// incoming http get request from client A
async (req, res) => {
    setTimeout(() => {
        udpserver.send('clientB', '..') // is received by client B!
    }, 200)
    res.end()
}

Вот почему я думаю, что может быть какой-то конфликт между сетевыми подключениями и потерями udp? Я не нашел ничего по этому конкретному вопросу.

Любые предложения и поставщики знаний приветствуются! Я попытался найти что-то подходящее для inte rnet, но, похоже, эта проблема либо слишком особенная, либо слишком очевидная.

...