Server-friendly Chat client options?


#1

I intend to add a mechanism to a site which allows registered members to live-chat with one another, IRC-style. I’ve already loaded Mibbit IRC chat but it’s not the right solution for this environment:

A single domain has multiple sub-domains. Each subdomain runs a unique instance of the SMF forum, and thus has unique membership. Some individuals from one group might be in another but they could have a different profile in each group. So for purposes here there’s no cross-over. (Yes, I’m looking at multi-site options. There are pros and cons with both single-instance/multi-site and multi-instance topologies.)

So each subdomain needs its own isolated chat area. Member “John” in one group can be different from “John” in another. Again, no cross-over.

IRC doesn’t work because on a single server each user has a unique nick, and I don’t want channels where everyone is identified as “name_group”.

I’d like to know what solutions people are using these days, whether Jabber, websockets, AJAX, database-oriented, etc. Any recommended PHP or JavaScript client that doesn’t impact the server? I’d prefer to avoid Java and Flash options. Ideally mobile-friendly solutions are preferred.

I’m considering BlaB! from http://hot-things.net/. Any comments?

Does DH have restrictions or concerns here? Do I need to discuss this with DH before implementation? I can provide links to DH personnel off-list for the site, forum, etc so DH can see what we’re planning.

I have no idea how much this is going to scale. I don’t expect this to be a primary use of the site. This is just one feature of many communications options. I’ve started development on a shared host and will test with a couple groups just to get established. If we need to scale we’ll go with one or more VPS’s.

Thanks!


#2

You aren’t supposed to run IRC or other persistent processes on shared hosting. Unless the wiki’s 116 common questions page is incorrect, the IRC/BNC/eggdrop rule applies to VPS and all, though the acceptable use policy doesn’t specify that

As for what all the kids are using these days, I’m not sure and interested in the answer myself. I’m going to guess that Jabber setups for each subdomain would be one of the easier solutions.


#3

Blab, and other similar solutions are just like any other AJAX/LAMP app, polling occasionally from the client to the server, checking a DB for updates, and returning results which are then rendered in a rich browser UI. I’d expect Joomla, Drupal, WordPress, OSCommerce, and other common FOSS to be much more chatty than this.

Trying to be a responsible neighbor on a shared host, I intend to look around for tools that will measure hits in terms of number and frequency, see what the peak periods are like, and then try to split out the load if I cross some threshold. I just don’t know where those lines are drawn. I’d start with the units of measurement available in the DH control panel (don’t even remember what those are but I remember there’s something like that there).

Just to make up some numbers, let’s say there are 10 subdomains with an average of 5 people in each at any average moment. At one poll every 5 seconds that’s 250 total server queries per minute in addition to normal server load. That’s not going to cause a blip anywhere. If I scale to 100 subdomains and we see 20 users on average, then at 10k queries per minute for this one app maybe it’s time to look at scaling.

Anyone here think that’s an over- or under-estimation? And I’ll follow that with: what any of us “think” is inconsequential. What matters is what DH says is actual “load”.