从我的理解来看,WebSockets被设计成可以穿越防火墙和代理。实际上,在客户机和服务器之间握手之后,通信协议将从HTTP更改为WS,但它仍将在用于建立握手的端口上进行通信。(见websocket.org)。
换句话说,如果客户端可以在给定的端口上执行HTTP请求,那么他也可以在同一端口上执行WS。
但是,根据XSockets配置文档,用于WS通信的端口与HTTP端口不同。与常规的WS连接不同,似乎需要防火墙上的NAT来允许XSockets服务器和客户端之间的通信。
是否有一种方法来配置XSockets服务器重用用于握手的HTTP端口(端口80),而不会与托管在同一web服务器(IIS)上的现有web应用程序产生冲突?
你是对的。但是,在web端口上监听的应用程序,应该能够理解WebSocket协议,以便进行握手,而这不是IIS的情况。8 .
如果你想让你的WebSocket运行在与你的web应用程序相同的端口上,你需要IIS 8(包含在Windows>= 8和>= 2012)。
据我所知,XSocket允许您使用IIS8作为托管环境:http://xsockets.net/docs/hosting#using-iis8
但是如果你有IIS <8、那是不可能的。这不是XSocket限制,而是IIS限制。