| 'use strict'; |
| var common = require('../common'); |
| var assert = require('assert'); |
| var net = require('net'); |
| |
| var serverConnection; |
| var echoServer = net.createServer(function(connection) { |
| serverConnection = connection; |
| connection.setTimeout(0); |
| assert.equal(typeof connection.setKeepAlive, 'function'); |
| connection.on('end', function() { |
| connection.end(); |
| }); |
| }); |
| echoServer.listen(common.PORT); |
| |
| echoServer.on('listening', function() { |
| var clientConnection = new net.Socket(); |
| // send a keepalive packet after 1000 ms |
| // and make sure it persists |
| var s = clientConnection.setKeepAlive(true, 400); |
| assert.ok(s instanceof net.Socket); |
| clientConnection.connect(common.PORT); |
| clientConnection.setTimeout(0); |
| |
| setTimeout(function() { |
| // make sure both connections are still open |
| assert.equal(serverConnection.readyState, 'open'); |
| assert.equal(clientConnection.readyState, 'open'); |
| serverConnection.end(); |
| clientConnection.end(); |
| echoServer.close(); |
| }, 600); |
| }); |