именованный канал FIFO с питоном и узлом - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть сервер Python, который пишет в именованный FIFO, и клиент nodejs, который читает из него.

Python

def send_data():
  print "enter"
  f = open(FILEPATH, 'w', 0)
  str = "new data"
  f.write(str)
  f.flush()
  f.close()

while True:
  send_data()

NodeJS клиент

const read = function () {
  console.log("enter");
  fs.readFile(FILEPATH, (err, data) => {
    if (err) {
        console.log(err);
    }
    else {
        console.log(data.toString());
    }
    setTimeout(read, 10);
  });
};
read();

Я ожидаю, чтоpython записывает «новые данные» и закрывает FIFO и nodejs по одному «новые данные» за раз.Я ожидаю, что на выходе будет что-то вроде ввода новых данных, ввода новых данных

, но фактический вывод -

enter
new data
enter
new datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew datanew 

Очевидно, мое понимание неверно.Может кто-нибудь объяснить фактическое поведение?И как мне добиться того, чего я хочу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...