My company uses OpenFire for server-side and smack for client-side in its XMPP Android application.
AWS seems like a good and scalable service for what we need. We use it for testing our app, but I'm afraid that the server will crash with 20k-50k users.
I have 2 questions:
- Is AWS good enough for an XMPP (OpenFire) server? What are the pros and cons?
- How do I build such an application that can handle 20k online users at least, and lets say 2k opened chat rooms?
- Is there any specific tutorial for this kind of stuff?
Money is not a problem in terms of server costs. Time is what matter for us right now.
AWS will work for what you intend without any problem, things to be aware though of an EC2 implementation
Apart from that Openfire does have a clustering solution, which is commercial, and as far as I know the company behind it died (and they haven't open sourced it, gah), I've been trying to contact them to get the clustering solution myself, to no avail.
So if you choose Openfire you'll be stuck with one server having to carry all the workload, which sounds a bit stressing with the numbers you're talking about, if you want to start with Openfire it looks like a good easy way to get rolling but when you need to be aware of your options when you start to grow ;)
For tutorials have a look at the Openfire howto at http://ubuntuforums.org/showthread.php?t=525670, it's not a bad one :)