-
-
Save shripadk/1406702 to your computer and use it in GitHub Desktop.
| #!/usr/bin/env node | |
| var os = require('os'); | |
| var WebSocketClient = require('websocket').client; | |
| var count = 0; | |
| function recursion() { | |
| var client = new WebSocketClient(); | |
| client.on('connectFailed', function(error) { | |
| console.log("Connect Error: " + error.toString()); | |
| }); | |
| client.on('connect', function(connection) { | |
| count++; | |
| connection.on('error', function() { | |
| console.log(arguments); | |
| }); | |
| connection.on('close', function(code, err) { | |
| count--; | |
| console.log("Client closed at: "+count+". Reason : " + err); | |
| process.exit(0); | |
| }) | |
| if(count % 500 == 0) { | |
| // sleep for 5 seconds | |
| var f = os.freemem(); | |
| var t = os.totalmem(); | |
| console.log('RAM: ' + (f/t * 100) + ', LOAD AVG: ' + os.loadavg().join()); | |
| var sleepfor = 5000; | |
| setTimeout(function() { | |
| console.log('active connections: ' + count); | |
| recursion(); | |
| }, sleepfor); | |
| } else { | |
| recursion(); | |
| } | |
| }); | |
| var random_node_id = function() { | |
| return Math.floor(Math.random()*90000) + 10000; | |
| }; | |
| var random_client_id = function() { | |
| return Math.floor(Math.random()*900) + 100; | |
| }; | |
| client.connect("ws://127.0.0.1:8888/echo/"+random_node_id()+"/"+random_client_id()+"/websocket", 'echo-protocol'); | |
| }; | |
| recursion(); |
Nope. Its websocket module on NPM... https://github.com/Worlize/WebSocket-Node.git
Thanks. How many socket connections are you getting? The Worlize client is stable running on Node v0.6?
I'm getting 48.5K concurrency before the ephemeral ports run out. I also discovered that the proxy that i'm using bouncy has some memory leak. So if I fix that / find some better proxy i'll rerun the tests again :) If the mem leak is fixed my estimate is that I can easily have 48.5x3K active connections (note these are just active connections... none of them are broadcasting anything... that will be my next test) on a single node instance.
Sweet.
ok the mem leak is fixed. https://github.com/substack/bouncy/pull/12
going to run the test again tomorrow and update with the results :)
@shripadk any updates on this? Were you able to get 150 000 000 connections out of it? :o
WebSocketClient is from SockJS?