Windows Server 2012 Standard 64-bit
Node 0.8.17 64-bit
IISNode 0.2.2 64-bit
Web Server role installed (all available options selected)
WebSocket Protocol installed
Git for Windows
Next, ran Dante example self-hosted from Node
Hit site at localhost:8888
Site loads and Dante text is appended every 2 seconds as described in example
Running example self-hosted works. Running under IISNode does not.
Also, I manually added a new site where Dante was a site, not a VD app under Default Web Site, but had same results.
Also attaching screenshot of IIS Application Development Server Roles configuration
When you click on the last request in Chrome (101 switching protocols), then choose "WebSockets" category at the very bottom of the screen, do you see any WebSocket frames listed?
Does Chrome report any client side exceptions?
Also, does the faye-websocket variant work?
Not sure if this helps, but I tried debugging the server-socketio.js script and I do hit this line (ln 1723):
if (self.options['connect timeout'])
which is true, and I eventually hit an inner line (ln 1737):
and xhr.readyState is 2 (not 4)
Basically, it never establishes a connection.
OK - I got it. I used Fiddler to inspect the socket connection, and I saw references to tmproxy. My effing company forces us to install Trend Micro. I inspected the trend micro registry settings batch file (adds registry settings when TM is installed). I located the HKLM\Software\TrendMicro\NSC\TmProxy node and found the Protection REG_DWORD and flipped it from 1 to 0 (Hex). I saved my reg changes, refreshed the local dante site, and walah...beautiful prose spilling onto the screen.
Sorry for all the hassle, but maybe this info will save someone else some trouble down the line.
Thanks for the detail. Proxies often get in the way of WebSockets.