是否可以使用IIS 7.5在端口443上托管安全的https网站,并让Java应用程序在443上运行Socket.IO websocket?
目前我们在443上运行网站,在另一个端口10001上运行安全websocket,但我们遇到了用户防火墙的问题,并希望将websocket移动到更好的“已知默认”端口。
我知道IIS 8具有WebSocket功能,但除非必要,否则我们不必将服务器实例升级到服务器2012.
答案 0 :(得分:0)
给定IP地址上的两个单独进程不能同时侦听相同的传入端口。因此,您不能让IIS和Java应用程序同时侦听同一端口。此外,webSocket协议最初是作为Web请求(IIS服务器将处理),然后当看到某些“升级”标题并且双方都同意时,然后将同一个套接字“升级”为webSocket协议,这使得很难有两个独立的过程参与。
我能想到的唯一方法是将IIS构建为webSocket的“代理”。当到IIS服务器的传入连接具有webSocket升级头时,您必须将其代理到您的Java应用程序(在不同的端口上),然后它可以从那里处理事物(而实际的套接字继续通过IIS代理) )。
可能有一个可以执行此代理分离的实际产品,您可以放在IIS服务器前为您执行此操作,但现在我认为您已经获得了足够的复杂性,我很想知道如果你真的应该选择干净的解决方案并进行升级。
你能把webSocket放在80端口吗?客户应该没问题。