Dante example not firing text snippets when running under IISNode #254

Closed
askesian opened this Issue Jan 15, 2013 · 7 comments

Projects

None yet

2 participants

@askesian

Environment:

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

Steps:

  • Cloned Dante example
  • Ran batch file to create IIS site
  • Loaded site using localhost/dante/server-socketio.js
  • Site loads with Dante app header (Dante over WebSockets with socket.io) but no Dante text is appended to page
  • Checked dev tools in Chrome and all js requests as outlined in demo screenshots are made:
    • Name: server-socketio.js; Path: /dante; Method/Status: GET 200 OK
    • Name: socket.io.js; Path: /dante/socket.io; Method/Status: GET 200 OK
    • Name: localhost?t=[random number string]; Path: /dante/socket.io/1; Method/Status: GET 200 OK
    • Name: F_OQSFx....; Path: /dante/socket.io/1/websocket; Method/Status: GET 101 Switching Protocols (Pending)

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

Result:

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.
Chrome dev tools network activity

@askesian

Also attaching screenshot of IIS Application Development Server Roles configuration
Win 2K12 IIS Application Development Server Roles configuration

@tjanczuk
Owner

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?

@tjanczuk
Owner

Also, does the faye-websocket variant work?

@askesian
  • I see one websocket frame listed
  • There are no exceptions in the console (there is nothing listed in the console; it is blank)
  • The faye-websocket variant also does not work (under IISNode). The faye variant does work when self-hosted
@askesian

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):

self.publish('connect_failed');

and xhr.readyState is 2 (not 4)

Basically, it never establishes a connection.

@askesian

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.

@askesian askesian closed this Jan 16, 2013
@tjanczuk
Owner

Thanks for the detail. Proxies often get in the way of WebSockets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment