Server push data

Discussion in 'Windows / IIS' started by robin, Aug 7, 2012.

  1. Hello,

    I want to have some functionality in our site which will push data from server to client. What technology I use depends, it seems, on the server configuration.

    A lot of options keep connections open and push data back to the client down them, but I'm aware that IIS has a fairly small number of allowable concurrent connections by default.

    Is this something other people are attempting in a hosted solution? Or should I be waiting and using web sockets instead (in which case, are there any issues I need to consider there?).

    Thanks for any thoughts

    Rob
     
  2. I've carried out some proof of concept / scale testing work with Server Sent Events (SSE aka HTML5 EventSource JS API) and MVC4 + WebAPI 4.5 on IIS7. I have to say it worked very well and scaled as far as I could push it on my local virtualized instances (which was up to around 1500 concurrently connected clients receiving streaming event data). It's definitely something that MUST be load tested on Windows Server and not a desktop O/S. The thing to keep in mind is that although SSE does use the "keep the http connection open" approach (like a hanging http GET), http connections are idle for most of the time except for when data is streaming which is how Windows Server manages to maintain so many connected clients on open tcp connections.

    I haven't attempted anything like this on a DASP shared server and I think it would probably be unfair to expect it to work in this environment for an application scenario where the potential number of connected clients is unknown (read as potentially very large!). After spending a couple of weeks working with this technology, it left me with the impression that if it was to be used in a real world application hosted on IIS, it really feels like something you need a dedicated server for.

    As an alternative to IIS hosting you might consider node.js which is supposed to scale much better for these types of scenarios. I haven't used it myself at all but it is supported on DASP.

    Official Web Sockets support on the MS stack doesn't come along until IIS7.5 however SignalR is a possible alternative framework that mimics web socket behaviour that can be used today. When / if IIS7.5 comes to DASP, I'm unable to advise if web socket technology is something that will supported here.
     

Share This Page