This repository was archived by the owner on Apr 22, 2023. It is now read-only.

Description
As API doc mentioned.socket.nodelay defaults to true,but even i call socket.setNoDelay(true),it didn't work well..
reproduce code:
server.js
var net = require('net');
var fs = require('fs');
var domainSock = '/tmp/domainSock';
var server = net.Server(function handle(socket) {
socket.setNoDelay(true);
socket.on('data', function(data) {
console.log('*');
console.log(data.toString());
console.log('*');
});
});
server.listen(domainSock);
server.on('error', function(e) {
if (e.code == 'EADDRINUSE') {
console.log('Address in use, retrying after 1minute..');
setTimeout(function() {
try {
fs.unlinkSync(domainSock);
//server.close();
} catch (e) {
console.log(e);
}
server.listen(domainSock);
}, 1000);
}
});
client.js
var net = require('net');
var socket = net.connect('/tmp/domainSock');
socket.setNoDelay(true);
socket.on('connect', function listener() {
console.log('connect');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
socket.write('data');
});
every time testing.the output is different.i don't know why.did i miss something?
output:
//first time
*
datadatadata
*
*
datadatadatadatadatadatadata
*
//second time
*
datadatadatadatadatadatadata
*
*
datadatadata
*
//third time
*
data
*
*
datadatadatadatadatadatadatadatadata
*
EDIT:I must say, i want one TCP packet one 'data' event was called.