2012-07-09 2 views
0

websocketssocket.io를 제공하는 웹 소켓은 물리적으로 포트 80에 있어야합니까? 봉사 <code>node.js</code> 및 <code>socket.io</code>를 사용하여

않습니다 socket.io 필요가 포트 80에서 수신 할 수 - 예 websockets에 대한 실제 포트를, 또는 그것이 다른 포트로 프록시 할 수 있습니다, 포트 8011, 서버에?

브라우저는 websockets을 사용하여 80/http를 통해 대화합니다. 서버의 haproxywebsocketsnode.js으로 리디렉션합니다.

오른쪽 haproxy127.0.4.11:80입니다. 이 잘 작동하지만 실행하려면 sudo 필요합니다.

localhost:8011으로 리다이렉트하지만 websockets을 올바르게 지원하려면 socket.io이 포트 80에 실제로 있어야하는지 알 수 없습니다.

답변

2

WebSockets (및 Socket.IO)은 모든 포트에서 실행할 수 있습니다. 대부분의 개발자는 개발시 루트로 실행되는 것을 피하기 위해 높은 포트 번호로 서버를 개발할 것입니다. 또한, Socket.IO 위키는 page on ports and which ones work for various firewall software입니다.

+0

하지만 80 이상의 웹 소켓은 다른 동물이기 때문에 복잡한 'http 확장'(?) 핸드 셰이크가 필요합니까? 80을 사용하면 방화벽이 문제가되지 않습니다. 질문은 프록시 인 socket.io가 브라우저가 "정말로"80 일을 염두에두고있는 한 올바르게 작동한다는 것을 알 필요가 있는지 여부입니다. –

+2

마지막 질문에 대한 답은 아니오입니다. 브라우저가 80에서 (동일한 출처 문제를 피하기 위해) 있다고 생각하는 한, 프록시는 어느 포트에 관계없이 정상적으로 작동합니다. – ebohlman