Чтобы показать простой пример, я хочу отправить несколько сообщений в сокет node.js tcp. Я только хочу отправить второе сообщение, когда первое сообщение полностью отправлено/выведено. Однако даже при ожидании вызова обратного вызова записи сообщения, кажется, отправляются как одно сообщение.
Вот пример кода:
var net = require('net');
var server = net.createServer();
server.on('connection', function(socket){
socket.write('First Message', function(){
socket.write('Second Message')
})
})
var client = new net.Socket();
client.setEncoding('utf8');
server.listen(9999, function(){
client.connect(9999);
});
client.on('data', function(data){
console.log('data received on socket:\n' + data);
});
В соответствии с документацией node.js из socket.write, "Опциональный параметр обратного вызова будет выполнен, когда данные окончательно выписаны - это может быть не сразу".
Основываясь на этом, в моем коде второе сообщение должно быть отправлено только тогда, когда данные окончательно выписаны для первого сообщения.
Но записанный вывод:
данные, полученные в сокете:
Первое сообщение MessageSecond
Как я могу отправить это сообщение отдельно?