Using node.js to listen on 2 different ports

Josh Jones picture Josh Jones · Feb 26, 2013 · Viewed 36.2k times · Source

I'm currently using Sockets.io to communicate with clients, sending JSON and whatnot, from a port.

That's all working good, but what i'd like to do is listen simultaneously on another port to create a type of administration page for testing purposes.

For example, the page would have a button to send a certain type of JSON for all the clients connected on the other port.

If this isn't ideal, any help on other simple solutions would be great.

Answer

Herman Junge picture Herman Junge · Feb 26, 2013

Just create another instance of http and put it to listen to the port you are interested. Let me show you an example:

var http = require('http');

http.createServer(onRequest_a).listen(9011);
http.createServer(onRequest_b).listen(9012);

function onRequest_a (req, res) {
  res.write('Response from 9011\n');
  res.end();
}

function onRequest_b (req, res) {
  res.write('Response from 9012\n');
  res.end();
}

Then, you can test it (with your browser, or curl):

$ curl http://localhost:9011
Response from 9011

$ curl http://localhost:9012
Response from 9012