【问题标题】:IIS: Websocket and IIS sharing port 443IIS:Websocket 和 IIS 共享端口 443
【发布时间】:2015-01-21 16:19:33
【问题描述】:
IIS 7.5 是否可以在端口 443 上托管一个安全的 https 网站并让 Java 应用程序在 443 上运行 Socket.IO websocket?
目前我们在 443 上运行网站,在另一个端口 10001 上运行安全 websocket,但我们遇到了用户防火墙问题,希望将 websocket 移动到更好的“已知默认”端口。
我知道 IIS 8 具有 WebSocket 功能,但除非必须,否则我们宁愿不必将服务器实例升级到 server 2012。
【问题讨论】:
标签:
asp.net
iis
websocket
socket.io
iis-7.5
【解决方案1】:
给定 IP 地址上的两个独立进程不能同时侦听同一个传入端口。因此,您不能让 IIS 和 Java 应用程序同时监听同一个端口。此外,webSocket 协议以 Web 请求(IIS 服务器将处理)开始,然后当看到某些“升级”标头并且双方同意时,同一个套接字随后被“升级”到 webSocket 协议,这使得很难有两个独立的进程参与。
我能想到的唯一方法是在 IIS 中构建 webSocket 的“代理”。当到 IIS 服务器的传入连接具有 webSocket 升级标头时,您必须将其代理到您的 Java 应用程序(在不同的端口上),然后它可以从那里处理事情(而实际的套接字继续通过 IIS 代理) )。
可能有一个实际的产品可以做这种代理分离,你可以把它放在你的 IIS 服务器前面来为你做这件事,但现在我认为你得到了足够的复杂性,我想知道如果您真的应该选择干净的解决方案并升级。
你能把 webSocket 放在 80 端口吗?客户应该没问题。