Windows – Options for real-time web notifications and updates using Comet/XMPP vs WebSocket technologies on a Microsoft stack

.net-4.0socketwindowsxmpp

I am scoping out the architectural options for a project that will render live updates (like Facebook) of user activities – logins, photos, etc. Two main UI components of this are an auto-updating scrolling area where new notifications will be listed (photos, etc.), and a toolbar that will update with things like updated message counts, etc.

The contenders for this are Jabber/Comet/XMPP-based and WebSocket technologies.

Comet camp:

WebSockets camp:

  • kaazing.com/
  • www.lightstreamer.com/
  • superwebsocket.codeplex.com/

(couldn't post over two links)

Since this the existing infrastructure is a Microsoft stack, I would rather not introduce Java-based servers into the mix. Saying this, it leaves (a very attractive) WebSync (Comet), and SuperWebSocket (WebSockets). However the Pokein's DLL integration is fairly seamless into a .Net project as well.

Are there any more real production level WebSocket initiatives for .Net? Is it too early to adopt WebSockets on a Microsoft stack, and should I go in favor of something like Kazing?

I am still waiting for a report on our current user base's browser types and versions (checking for HTML5 compatibility). I am suspecting that this number will be low (older user base). If that is the case, the Comet option would be the winner.

What are some other things to consider?

Can I get some comments from anyone that has used any of the technologies and products listed above?

Thanks.

Best Answer

I'm biased (I work for Frozen Mountain), but you should check out WebSync.

WebSync v4 uses WebSockets in addition to falling back to long-polling/callback-polling as needed. The WebSockets in WebSync are all over standard HTTP ports as well, so there won't be any issues with routers/filrewalls/etc.

On a "normal" system, you should see ~20k concurrent (per node) and ~100k messages/sec. Those are very rough numbers though, as it depends drastically on your system and the types of messages you're sending, etc. We've seen as high as 50k users (per node) and (in a different test) 300k messages/second.

A couple comments from other people who've used it:

https://stackoverflow.com/a/8525454/25330

https://stackoverflow.com/questions/2604193/websync-pros-and-cons