Web Chat Application – ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax – Issues Faced – Seeking Insights

I’ve been trying to build a web based chat application for the past three weeks and i’m facing issues with whatever route (programming technique/technology) i take to build it. I’ve explained the issues i’ve experienced with all of’em below. Kindly provide whatever insights you have in this.

ASP.NET-AJAX

  1. First issue is that it is Not Really Real Time
  2. If client hits the chat server every x seconds (constant time stamp) it is not going to be real time unless x is very very less
  3. If x is very small like 1 second and if there are 1000 users online at the same time i think it is really going to hammer the chat server and cause scalability/performance issues

WCF-Duplex

I unfortunately wasted considerable amount of time in this trying to build a WCF duplex service which maintains all the clients and invokes the client through the channel as and when required. But i recently learnt that WCF duplex callback wont work with ASP.NET (since http is request and respond type). I was following this great article to build a duplex service.

Comet/ReverseAjax/HTTP Server Push

I’m extremely new to this technique and wonder how well enough it can scale. After my first glance on this programming technique here in wiki and the very first article on Comet by Alex here, i learned that the client always maintains an open connection (long living ajax calls) to the server which can be used by the server to push “interesting events happening in the server” to the browser (client). So how well can it scale? What if the max no of open connections exceed in IIS or any other issues like that?

Jabber Server/Client (XMPP)

I see that most of the prominent chat applications that can be seen online are making use of Jabber. I also learned that writing a Jabber server from the scratch is a tedious task. I have separate user profile store for by application. Can i integrate that with Jabber easily? Any open source Jabber servers that i can host privately? (I’ve seen many open source tools to build the client easily)

Any insights provided are very much appreciated.

Thank you

NLV

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

If you are using .NET, check out WebSync. It allows for fully scalable comet using IIS to integrate directly with your application. There is a free Community edition you can try out, along with tons of examples and chat demos.

I just recently implemented a multi-client Jabber web-app using WebSync and jabber-net.

Method 2

PokeIn provides shared objects among the clients and it simply helps you to create impressively solid and fast web applications. Even if your application is hosted on multiple servers, PokeIn manages the shared objects on all of them. So, this feature will help you to create quite effective solutions. In addition to these, you will find very useful samples over there

Method 3

I know this is old but if somone new founds this you should consider using SignalR

Method 4

Open Source Jabber Server

Have you checked out OpenFire


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x