我正在使用Windows Server 2008 R2上的IIS 7.5运行一个小网站。 我有一个node.js应用程序也运行在端口3000上。
来自网站(客户端浏览器)的HTTP调用反向代理http://example.com/node/whatever到http://localhost:3000/whatever 。 一切工作到目前为止。
问题是当我尝试使用socket.io。
我收到:
WebSocket connection to 'ws://example.com/socket.io/?EIO=3&transport=websocket&sid=adb9WRpoMFYRoS0vAAAB' failed: Error during WebSocket handshake: Unexpected response code: 502
我很确定,如果我没有错,那就是:
它将最初的请求转发给我的服务器,因为对websocket服务器的初始请求是一个标准的HTTP请求(带有一些额外的头文件)。 IIS确实知道,只是转发请求。 然而,一旦接收到websocket请求,websocket服务器发送101响应并切换到websocket模式。 IIS不理解websocketstream量,并且无法代理该stream量。
有没有一个技巧或解决scheme来configuration反向代理的ws://地址?
似乎WebSocket支持在IIS 7.5中不可用。
http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support