I have problem with my TCP server in node.js. Sometimes I have to synchronize ubuntu clock with main server time. Time is changing correctly but there is a problem with my application. After 3-5 date changes server writes some errors:
{ Error: socket hang up
at createHangUpError (_http_client.js:302:15)
at Socket.socketOnEnd (_http_client.js:394:23)
at emitNone (events.js:91:20)
at Socket.emit (events.js:188:7)
at endReadableNT (_stream_readable.js:975:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9) code: 'ECONNRESET' }
I couldn't find any similar problem to mine, where someone will change date. My idea was to restart TCP Server on every date change but it doesn't help.
TCP server code:
var net = require('net');
var TCPCommands = require.main.require('./src/TCP/TCPCommands');
var config = require.main.require('./config');
var server = net.createServer(function (socket) {
var remoteAddress = socket.remoteAddress + ':' + socket.remotePort;
socket.on('data', function (data) {
console.log("Incoming buffer: ");
console.log(data);
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) {console.log(stdout)}
exec("date -s " + "'" + moment("SAMPLE DATE").format(localFormat) + "'", puts);
exec("hwclock --systohc --localtime", puts);
module.exports.restartTCPServer();
socket.write("responseBuffer");
});
socket.once('close', function() {
console.log("Connection from " + remoteAddress + " closed");
socket.end();
});
socket.on('error', function(err) {
console.error("Connection " + remoteAddress);
console.error(err.message);
socket.destroy();
});
});
module.exports = {
startTCPServer: function() {
server.listen(config.pttTcpServerPort, function () {
console.log("TCP Server is running " + config.pttIpAddress + ":" + config.pttTcpServerPort);
});
},
stopTCPServer: function() {
server.close(function () {
console.log("Stopping TCP Server");
});
},
restartTCPServer: function() {
var t = this;
console.log("Restarting TCP Server");
t.stopTCPServer();
t.startTCPServer();
}
}
via Marcin Gwóźdź
No comments:
Post a Comment