Iis WebSocket托管不在端口80防火墙问题

Iis WebSocket托管不在端口80防火墙问题,iis,iis-7,websocket,Iis,Iis 7,Websocket,不在端口80中托管的websocket服务器在Internet浏览器中是否不可见 我不能使用端口80(IIS正在使用)443或8080 托管在自定义端口上的WebSocket是否存在防火墙问题 唯一的方法是使用IIS8作为共享同一端口(80)? (我将IIS7与SuperWebSocket库一起使用) 从浏览器访问的WebSocket不应部署在自定义端口中 提前谢谢 为了抓住你问题的核心,我已经非常成功地认识到我的Web服务器和Web套接字服务器都可以位于端口80上,但主机(来源)不同。只要We

不在端口80中托管的websocket服务器在Internet浏览器中是否不可见

我不能使用端口80(IIS正在使用)443或8080

托管在自定义端口上的WebSocket是否存在防火墙问题

唯一的方法是使用IIS8作为共享同一端口(80)? (我将IIS7与SuperWebSocket库一起使用)

从浏览器访问的WebSocket不应部署在自定义端口中


提前谢谢

为了抓住你问题的核心,我已经非常成功地认识到我的Web服务器和Web套接字服务器都可以位于端口80上,但主机(来源)不同。只要Web套接字服务器能够处理来自您的Web页面源的CORS请求,这似乎是一种避免防火墙问题的方法,并导致从Web服务器获得静态内容和从WebSocket服务器获得动态内容的体系结构

故事是这样的:

  • 来自web.server.com的服务页面:80(这是来源)

  • 在该网页的应用程序空间中,打开一个WebSocket到WebSocket.server.com:80/serviceName

    (发出需要websocket.server.com允许的跨源请求,这可能会将web.server.com列入白名单)

  • 愉快地分别提供动态内容和静态内容

对您的一些问题有一些更具体的回答:

不在端口80中托管的WebSocket服务器在Internet浏览器中是否不可见

不可以。如果需要,浏览器中的应用程序可以将WebSocket打开到其他端口, 受CORS约束。通常,将WebSocket保留在端口80上是有利的,这样中间层和边缘网关就不必更改防火墙规则

我不能使用端口80(IIS正在使用)443或8080。 托管在自定义端口上的WebSocket是否存在防火墙问题


最有可能的情况是,除非您控制防火墙并可以打开其他端口

如果您可以控制防火墙,那么在自定义端口上运行websocket服务器就没有问题。您只需要打开该端口,以允许传入流量到达该端口

问题不是真正的防火墙本身,而是在流量到达服务器之前发生的其他类型的过滤、代理、负载平衡等。但是,除非您有未提及的特定要求,否则简单地允许该端口上的流量应该没有问题

如果您将WebSocket服务器配置为限制到特定源(COR)的连接,则需要允许源进行连接。来源是web服务器的地址,该服务器将为发出WebSocket请求的网页提供服务。默认值通常是完全开放的,或仅限于websocket服务器本身的地址。

根据:

警告:服务器可以在其选择的任何端口上侦听,但如果 选择80或443以外的任何端口,它可能会遇到以下问题 防火墙和/或代理。端口443上的连接更容易成功 通常但当然,这需要安全连接(TLS/SSL)。 另外,请注意,大多数浏览器(尤其是Firefox8+)不允许 从安全页面连接到不安全的WebSocket服务器