diff --git a/red/tcp/tcp.html b/red/tcp/tcp.html
index af5cfd6..1b3e8c1 100644
--- a/red/tcp/tcp.html
+++ b/red/tcp/tcp.html
@@ -40,18 +40,22 @@
+
+
+
+
-
-
+
+
-
-
+
+
@@ -67,6 +71,7 @@
datamode: { value: "stream" },
datatype: { value: "buffer" },
newline: { value: "" },
+ keepalive: { value: "120000" },
topic: { value: "" },
base64: {/*deprecated*/ value: false, required: true }
},
@@ -103,6 +108,7 @@
$("#node-input-server").change(updateOptions);
$("#node-input-datatype").change(updateOptions);
$("#node-input-datamode").change(updateOptions);
+ $("#node-input-keepalive").spinner({ min: 1 });
}
});
diff --git a/red/tcp/tcp.js b/red/tcp/tcp.js
index e92ea48..6bd170f 100644
--- a/red/tcp/tcp.js
+++ b/red/tcp/tcp.js
@@ -55,6 +55,7 @@ module.exports = function(RED) {
this.datatype = n.datatype||'buffer'; /* buffer,utf8,base64 */
this.newline = (n.newline||"").replace("\\n","\n").replace("\\r","\r");
this.base64 = n.base64;
+ this.keepalive = parseInt(n.keepalive) || 120000;
this.server = (typeof n.server == 'boolean')?n.server:(n.server == "server");
this.closing = false;
this.connected = false;
@@ -76,7 +77,7 @@ module.exports = function(RED) {
node.log(RED._("tcpin.status.connected",{host:node.host,port:node.port}));
node.status({fill:"green",shape:"dot",text:"common.status.connected"});
});
- client.setKeepAlive(true,120000);
+ client.setKeepAlive(true, this.keepalive);
connectionPool[id] = client;
client.on('data', function (data) {
@@ -151,7 +152,7 @@ module.exports = function(RED) {
}
else {
var server = net.createServer(function (socket) {
- socket.setKeepAlive(true,120000);
+ socket.setKeepAlive(true, this.keepalive);
if (socketTimeout !== null) { socket.setTimeout(socketTimeout); }
var id = (1+Math.random()*4294967295).toString(16);
var fromi;