iiswebsockettornadoheliconzoo

Tornado Webscoket with IIS 8.5 and Helicon Zoo


I`m trying to install Tornado server with webscoket Handler under the IIS with Helicon Zoo help. Http Tornado works well (behind IIS with Helicon Zoo help) Websocket tornado works well being installed on separate port.

How can I setup the Helicon Zoo to enable websocket in such configuration? I found, that Helicon substitutes headers with own values: [('Origin', 'http://xxx'), ('Via', '1.1 xxx (squid/3.5.25)'), ('X-Zoo-Appl-Virtual-Path', '/tornado'), ('X-Zoo-Appl-Physical-Path', 'C:\inetpub\wwwroot\tornado'), ('X-Forwarded-For', 'xxx'), ('Sec-Websocket-Version', '13'), ('X-Zoo-Forwarded-Protocol', 'http'), ('Sec-Websocket-Key', 'xxx'), ('Host', 'xxx'), ('X-Zoo-Forwarded-Host', 'xxx'), ('X-Zoo-Real-Ip', 'xxx'), ('Cache-Control', 'max-age=259200'), ('X-Zoo-Forwarded-Port', '80'), ('X-Zoo-Forwarded-For', 'xxx'), ('X-Zoo-Forwarded-Server', 'xxx')]

outcoming handlers are ok, checked with wsdump.py

websocket client reports error #400

would appreciate any help


Solution

  • Zoo runs web applications behind IIS using sort of proxy. Although latest IIS versions do support Websockets to some degree, the current version of Zoo proxy does not support bypassing of Websocket protocol. Sorry for the inconvenience.