2012-07-09 35 views
0

使用node.jssocket.io服务websocketssocket.io服务websockets需要身体上在端口80?

确实socket.io需要被侦听端口80 - 用于websockets真正的端口,或者可以将其代理到一个不同的端口,例如,端口8011,在服务器上?

浏览器,使用websockets,通过80/http协商。在服务器上haproxy重定向websocketsnode.js

right haproxy指向127.0.4.11:80。这工作正常,但这需要sudo运行node.js

宁愿重定向到localhost:8011,但不知道socket.io是否需要实际上在端口80上才能正确支持websockets

回答

2

WebSockets(和Socket.IO)可以在任何端口上运行;大多数开发人员将在高编号的端口上开发他们的服务器,以避免在开发中作为根源运行。此外,Socket.IO wiki有一个page on ports and which ones work for various firewall software

+0

但80多个websockets是不同的动物,需要复杂的'http extend'(?)握手,对吧?如果它使用80,那么防火墙不是问题。问题是,代理的socket.io是否需要知道,就浏览器而言,它是“真正”在80上,才能正确地完成其工作。 – 2012-07-09 04:25:29

+2

最后一个问题的答案是否定的。只要浏览器认为它在80(为了避免同源问题),无论代理到什么端口,它都能正常工作。 – ebohlman 2012-07-09 07:26:01