node.js: HTTP-шлюз UDP - PullRequest
       8

node.js: HTTP-шлюз UDP

0 голосов
/ 30 апреля 2018

Я хотел бы создать HTTP-шлюз UDP. Фон отправляет UDP-пакеты, запущенные с помощью HTTP / AJAX. Я начал строить проект с Node.js.

У меня есть работающий HTTP-сервер, и я могу отправлять UDP-пакеты с Node.js. Но я не могу отправлять пакеты UDP в пределах http.request-function. Ниже приведена выдержка из моего кода:

var http = require('http');
var port = 3000;

var http_server = http.createServer()

http_server.on('request', (request, response) => {
    console.log('Request: '+ request.url);
    //var message = request.url;
    var message = 'test';
    var udp_client = dgram.createSocket('udp4');
    udp_client.send(message, 0, message.length, 27994, '10.119.233.11', function(err, bytes) {
        if (err) throw err;
        console.log('UDP message sent to ' + HOST +':'+ PORT);
        console.log(err);
    });
    response.end('done');
});

Почему это не работает? Есть обходные пути? Есть ли вообще более простой способ реализовать мою задачу?

1 Ответ

0 голосов
/ 30 апреля 2018

Ваш конкретный пример не работает: вам нужно определить HOST, PORT, импортировать пакет dgram ... Вот версия, которая работает:

var http = require('http');
var dgram = require('dgram');
var udp_client = dgram.createSocket('udp4');

var server = http.createServer()
server.listen(8080)

server.on('request', (request, response) => {
    console.log('Request: '+ request.url);
    var message = 'test';
    udp_client.send(message, 0, message.length, 27994, '10.119.233.11', function(err, bytes) {
        if (err) throw err;
    });
    response.end('done');
});
...