Поведение читаемого события стандартного ввода в Node JS - PullRequest
0 голосов
/ 21 апреля 2020

Я написал UDP-клиент для отправки строк из стандартного ввода в UDP-сокет:

var PORT = 12000;
var HOST = '127.0.0.1';

var dgram = require('dgram');

var client = dgram.createSocket('udp4');

process.stdin.on("readable",
  function() {
    var chunk = process.stdin.read();
    if (chunk !== null) {
      client.send(chunk, PORT, HOST);
    }
  }
);

client.on("message",
  function (message, remote) {
    process.stdout.write(message);
  }
);

Теперь событие readable срабатывает в первый раз, но впоследствии перестает работать.

Я успешно использовал это на клиенте и сервере TCP-чата раньше: я получил бесконечно читаемое событие.

Что может вызвать проблему здесь?

1 Ответ

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

Код работает, если я подпишусь на событие data на стандартном вводе. Это срабатывает каждый раз, когда я набираю новую строку в стандартный ввод.

См. документация о событиях данных в классе потока .

...