Server IP : 85.214.239.14 / Your IP : 18.216.232.215 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/task/3/root/proc/3/root/lib/node_modules/pm2/node_modules/needle/test/ |
Upload File : |
var needle = require('../'), should = require('should'), http = require('http'); var server, port = 11112; describe('socket reuse', function() { before(function() { server = http.createServer(function(req, res) { res.setHeader('Content-Type', 'application/json'); setTimeout(function() { res.end('{"foo":"bar"}'); }, 50); }).listen(port); }); after(function() { server.close(); }); describe('when sockets are reused', function() { var httpAgent = new http.Agent({ keepAlive : true, maxSockets : 1 }); it('does not duplicate listeners on .end', function(done) { var last_error; var count = 10; function completed(err) { --count || done(last_error); } function send() { needle.get('localhost:' + port, { agent: httpAgent }, function(err, resp) { if (err) throw new Error("Unexpected error: " + err); // lets go through all sockets and inspect all socket objects for (hostTarget in httpAgent.sockets) { httpAgent.sockets[hostTarget].forEach(function(socket) { // normally, there are 2 internal listeners and 1 needle sets up, // but to be sure the test does not fail even if newer node versions // introduce additional listeners, we use a higher limit. try { socket.listeners('end').length.should.be.below(5, "too many listeners on the socket object's end event"); } catch (e) { last_error = e; } }); } completed(); }); } for (var i = 0; i < count; i++) { send(); } }); }); });