what port does the socketIO client listen to by default?

When you do not specify a port in the io.connect() function on the client side, what port does the client listen to?

eg:

var socket = io.connect('http://example.com/);// listening to port 80?

The reason I ask is because I deployed the server side of this application on heroku. The front end is an IOS application. The objective C socketIO library I'm using for the front end (https://github.com/pkyeck/socket.IO-objc) requires me to specify a port. But I'm not sure what port I should listen to since this is not static on the server side.

I wrote client program in javascript for testing and it works when I do not specify a port.

Any help would be much appreciated.

It listens on the port the server listens to. Imagine you set your server to listen port 8080. Then you load you page at http://localhost:8080 and the server returns the page which contains the socket related JS code.

  1. If you don't specify any port or host as in var socket = io.connect();, it defaults to the host and port of the current page.
  2. If you specify only the host which is same as the current host, it defaults to the port of the current host.
  3. If you specify only the host which is different from the current host, it defaults to port 80 if the protocol is HTTP. If the protocol is HTTPS, then the port defaults to 443.

Here is the related code for url.js parser.