C# IIS 7反向代理背后的Websocket服务器

C# IIS 7反向代理背后的Websocket服务器,c#,websocket,reverse-proxy,C#,Websocket,Reverse Proxy,我已经使用hybi-17规范,使用.NET4.0和套接字构建了一个WebSocket聊天服务器。如果浏览器通过端口81连接到聊天服务器,则一切正常。但是,由于公司防火墙等原因,我需要使用浏览器连接到端口80,因为这需要世界上每台电脑都能访问 所以我在用。我已经设法让浏览器连接到IIS 7上,然后将请求代理到websocket服务器正在侦听的位置 Websocket服务器进行握手并为连接创建套接字,然后返回到侦听状态 问题是,在客户端,websocket“onopen”事件从未被触发。就好像IIS

我已经使用hybi-17规范,使用.NET4.0和套接字构建了一个WebSocket聊天服务器。如果浏览器通过端口81连接到聊天服务器,则一切正常。但是,由于公司防火墙等原因,我需要使用浏览器连接到端口80,因为这需要世界上每台电脑都能访问

所以我在用。我已经设法让浏览器连接到IIS 7上,然后将请求代理到websocket服务器正在侦听的位置

Websocket服务器进行握手并为连接创建套接字,然后返回到侦听状态

问题是,在客户端,websocket“onopen”事件从未被触发。就好像IIS没有将请求发送回浏览器一样

我们将非常感谢您的帮助


提前谢谢

这是因为IIS 7不知道WebSocket,并且无法代理它。但是,它会将初始请求转发到websocket服务器,因为对websocket服务器的初始请求是标准HTTP请求(带有一些附加头)。IIS将知道这一点,并简单地转发请求。但是,一旦收到websocket请求,websocket服务器将发送101响应并切换到websocket模式。IIS将无法理解websocket流量,并且无法代理该流量

IIS 8将在本机上支持websocket(支持将包含在.NET 4.5中),希望Microsoft也能添加对反向代理websocket通信的支持