У меня есть базовый сервер Node.js, использующий Express. Он должен уметь обрабатывать как TCP-сообщения, так и UDP-сообщения. Часть TCP работает и работает отлично, но теперь мне нужно интегрировать способ, чтобы прослушивать UDP-сообщения. Я попытался добавить обработчик в стек фильтров с помощью сокета dgram
, но он не увенчался успехом.
const express = require('express');
const dgram = require('dgram');
// ...
const app = express();
const dgramSocket = dgram.createSocket('udp4');
// ...
app.use((req, res, next) => {
dgramSocket.on('listening', () => {
let addr = app.address();
console.log(`Listening for UDP packets at ${addr.address}:${addr.port}`);
});
dgramSocket.on('error', (err) => {
console.log(`UDP error: ${err.stack}`);
});
dgramSocket.on('message', (msg, rinfo) => {
console.log(`Received UDP message`);
});
next();
}
// ...
app.set('port', 8080);
Когда я запускаю свой сервер, все остальное работает, но мои dgram
части даже не говорят, что они слушают. Я не слишком знаком с Node и, тем более, с UDP, так что могу ошибиться. Кто-нибудь смог интегрировать обмен сообщениями UDP с сервером Express?