У меня параллельно работают сервер 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, но, похоже, эта проблема либо слишком особенная, либо слишком очевидная.