سؤال

We are planning to introduce real time chat feature in our mobile apps. Ofcourse we would be going the XMPP way.

Can anybody shed some light on stats for maximum number of concurrent users Openfire has supported on EC2 instances (windows server) of different sizes in the real world?

We are looking at numbers ranging from 22500 concurrent users to 75000 concurrent users depending upon growth patterns predicted for app downloads and user adaptability for this new real time chat feature. time range = next 12 months.

From whatever googling I have done so far, it seems Openfire may not be the best bet when it comes to scaling out so can these numbers be supported on a single instance of ec2 over time? ie: we start hosting on smaller instances and keep increasing instance size as load demands.

Ejabbered seemed to be the best option when it comes to scaling out but since we would need to have erlang skills in order to extend it makes ejabbered a difficult choice for us. The other alternate is tigase which is java so we could extend it much easily but if Openfire can work for us for the next 12 months or so by scaling up versus scaling out, we would be happy to use it for now and see how well this new chat feature is embraced. Number one reason being ease of management.

Lastly, if you could help with links on SaaS / PaaS providers for XMPP chat + Push Notifications to mobile devices when user is offline, it would be awesome. We got in touch with quickblox.com but their enterprise offerings appear to be expensive for us at the moment. We want 100% ownership and portability of our data if we go the SaaS / PaaS way.

هل كانت مفيدة؟

المحلول

The numbers you mention should be easily handled by ejabberd.

I am unsure as to how you want to "extend" ejabberd. Multi-user chat and messaging are handled fine by all servers and of course ejabberd. Additionally, if you are thinking of custom protocols, these can be written in your language of choice and connect to ejabberd as an XMPP component.

The only thing you might miss is a web interface (which ejabberd has but it's rather limited), but then again if you expect to manage things through a web UI for an application, you will need to think again ;)

نصائح أخرى

There are several references to Openfire handling those and larger numbers of concurrent users on a single server.

There is document on scalability from 2007 that shows 50000 users supported on version 3.2. The current release is 3.7.1. Don't forget that that also means a much slower machine than anything you are likely to run on today.

You also have to take into account what features of XMPP you will be using, but simple messaging should be able to easily handle the numbers you are referring to.

if you want to go with ejabberd, you can always get support from ProcessOne. This is another plus for ejabberd, as it can be commercially supported if you want to / can afford.

Android Push Notification is a good solution.

With Android-Push services, you (Android developers) can send messages directly to the people who have installed your app. All you need is to include a code snippet into your app, and post to a specific URL to reach your app users, even if your app is inactive on their phone.

Feature:

Free

Free, unless you need extensive number of pushes for your app. Of course you can pay for more push and a quicker tech support.

Easy

Extremely easy to integrate into your app Super simple to push to the app: just send a URL request No C2DM limit, you don't have to have a gmail account to use the push service Cloud service, no need to setup your own push server

Effective

Low battery and network consumption on the phone Track user interaction, find out how users react to your push

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top