what's the best open protocol for chat room software?
Asked Answered
C

3

20

I'm comparing between IRC, XMPP and a third proprietary server I have.

what are the pros and cons of each and suggest others if you know any mentionable ones.

Consuetudinary answered 10/11, 2010 at 21:43 Comment(2)
You say open, but mention a proprietary option you're considering. Are non-open options acceptable, then? How would we give you the pros/cons without knowing what proprietary option you are considering?Eozoic
I'm considering this because I have the source code. but I want only open suggestions.Consuetudinary
E
17

Just go for XMPP.

There are servers known to scale big, it can work with a web client with minimum hassle (if that's what you need) with great libraries to support it, and, the XEP-45 specifies exactly how the clients and servers are supposed to operate.

Edyth answered 12/11, 2010 at 11:12 Comment(1)
I was seriously considering XMPP the most and you supported my pov.Consuetudinary
I
30

I know this is a very old post, and the op will likely not see the reply (or maybe even care any longer), but I would deploy IRC over XMPP personally. The big reason for this is the amount of memory that XMPP servers occupy as more and more XMPP clients connect. On a single instance, I have not seen rock-solid reliability when more than about 200 users connect, and actively start using the service (XMPP MUC, file transfers, client-to-client encryption, etc).

Contrasted with IRC, I've personally seen thousands of connections to a single instance, and the memory utilization is usually 60-70% less. The IRC server does not need to parse the messages passed from the client, file transfers are client-to-client via DCC, and the design is much, much simpler than the XML-based XMPP.

You may run into netsplits, if you run multiple servers, and allow clients to choose which server to connect to. But how is an unstable IRC server any different than an unstable XMPP server? And if an IRC server netsplits, it doesn't take every client offline- only those connected to it. So the impact is minimal, compared to XMPP (unless you're doing s2s).

Regardless, the IRC protocol is more simplistic in nature, can handle orders of magnitude more client connections than XMPP for the same memory utilization, uses less bandwidth on the wire, doesn't require authentication (although you can add this feature), etc.

It seems I'm not the only one who feels this way: http://web.archive.org/web/20131128110041/http://laltromondo.dynalias.net:80/~iki/informatica/soft/xmpp_vs_irc/.

For future readers of this post, consider IRC. It may just save you some headache later down the road.

Intransigence answered 20/3, 2012 at 22:3 Comment(5)
Google talk has issues with more than 200 users? I am pretty sure that there a hundreds, if not thousands of corporate IM solutions that use XMPP reliably with more than 200 users.Crotty
Google talk do not run on a single XMPP server. Also its not available for deployment, the software are internal to Google. So are the XMPP software for MSN and Facebook. XMPP do have binary XML in its specification and could potentially be much more efficient than IRC. But available servers for deployment matters and irc, which have been in development since the early 90's have free open source servers that outperforms anything XMPP have.Tayler
Just saw your answer now :) after almost 4 years, thanks mateConsuetudinary
I love IRC. But what do you think of IRC servers’ standard behavior of no support for, eg offline messages, push notifications, etc. Bouncer may solve those problems but it’s unrealistic requiring all users to setup their bouncers. I’m not familiar with XMPP, How does this compare to XMPP?Apathetic
I wish this had been taken into account when the system now I maintain was designed. How XMPP behaves with our growing user base? Well, to paraphrase Truth #3: pigs can fly too with a powerful enough instance... for now... but we're in trouble. Not my idea of scalability.Chung
E
17

Just go for XMPP.

There are servers known to scale big, it can work with a web client with minimum hassle (if that's what you need) with great libraries to support it, and, the XEP-45 specifies exactly how the clients and servers are supposed to operate.

Edyth answered 12/11, 2010 at 11:12 Comment(1)
I was seriously considering XMPP the most and you supported my pov.Consuetudinary
W
3

You might want to consider PSYC.

It's like the blend of the best features of XMPP and IRC, and then some more :

Since it can provide most of what you would expect from IRC, you could consider psyced before starting an IRC network. PSYC solves IRC's political, authentication and scalability issues and comes with a huge choice of extra features that go beyond what you would expect from an IRC server, still psyced can be used with all the IRC clients you are accustomed with. Up to a certain degree, PSYC and psyced also support things you would expect from Jabber, and even XMPP itself, but you may run into problems depending on your special requirements. psyced is also an XMPP server and gateway at the same time. The PSYC protocol is capable of delivering encrypted data natively, although we're only going to start using that in 2012.

Widgeon answered 4/5, 2012 at 20:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.