У меня есть два процесса узла, которые говорят друг с другом.Я назову их [Узловой сервер] и [Узловый отправитель] . [Node Sender] постоянно обрабатывает информацию и записывает сообщение по TCP-соединению на [Node Server] . [Node Server] затем записывает обратно сообщение о состоянии.
Пример [Node Sender]:
var message = "Test Message";
[Node Sender].connection.write(message);
Пример [Node Server]:
[Node Server].socket.on("data", function(p_data) {
this.write("OK");
// Do some work with p_data
}
Это работает без проблем, p_data всегда содержит «Тестовое сообщение» при отправке со скоростью более 5 миллисекунд.Однако, если я ускоряю [Node Sender] для записи каждую миллисекунду, p_data иногда заканчивается чем-то вроде "Test MessageTest MessageTes" .
Я понимаю, что буфер в [Node Sender] , вероятно, заполняется быстрее, чем отправляет его команда записи.Есть ли способ заставить соотношение один к одному при отправке сообщений, оставаясь при этом асинхронным?
Конечно, я могу просто добавить терминатор к своему сообщению и просто заполнить буфер в [Узловой сервер] , но я хотел убедиться, что не было чего-то очевидного, что я пропустил.