socketIO客户端默认监听哪个端口?

时间:2014-09-11 03:09:24

标签: node.js heroku socket.io

如果未在客户端的io.connect()函数中指定端口,客户端会侦听哪个端口?

例如:

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

我问的原因是因为我在heroku上部署了这个应用程序的服务器端。前端是IOS应用程序。我用于前端的目标C socketIO库(https://github.com/pkyeck/socket.IO-objc)要求我指定一个端口。但是我不确定我应该听哪个端口,因为这在服务器端不是静态的。

我用javascript编写客户端程序进行测试,当我没有指定端口时它可以工作。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:11)

它侦听服务器侦听的端口。想象一下,您将服务器设置为侦听端口8080。然后在http://localhost:8080加载页面,服务器返回包含套接字相关JS代码的页面。

  1. 如果您未在var socket = io.connect();中指定任何端口或主机,则默认为当前页面的主机和端口。
  2. 如果仅指定与当前主机相同的主机,则默认为当前主机的端口。
  3. 如果仅指定与当前主机不同的主机,则如果协议为HTTP,则默认为端口80。如果协议是HTTPS,则端口默认为443
  4. 以下是url.js解析器的相关代码。