views:

730

answers:

1

I have the task of choosing an XMPP server/client solution for an internal web application. The goal is for employees to be able to utilize it via desktop client or the web application. The web client is mandatory.

The web application is written in PHP, but I don't necessarily need a PHP solution. Flash or Java are acceptable (Flash would be preferable since that's already required for another component of the application).

The web application requires javascript be enabled (and makes use of jQuery), so AJAX isn't out of the question either.

There are only two requirements that must be met:

  1. The client must use a secure connection (HTTPS for AJAX, TLS for Flash/Java).
  2. The client license must be commercial friendly. Free would be nice, but is not a requirement.

So far, I've found SparkWeb, which is LGPL licensed (hooray), but I have not been impressed by its live demo. I was unable to create an account on their server or connect to another XMPP server that I run, so I haven't even been able to see it in action.

I've also found Strophe, which looks good.

Another option is one of Tigase's client options. I'm not sure if the GPLv3 will like our usage though (I'll need to read it more carefully).

Any advice (or a shove in the right direction) would be appreciated.

+1  A: 

About the licence : GPL mandates you provide source code with the application. So GPLv3 can fit.

Choosing a library, I see two possible options:

  • if you want a custom and great integration with your website code, building a webclient with StropheJS is possibly the best choice. But you'll need to code the client GUI. (more work)

  • If you want a good client but with limited interaction with the rest of the website, I'd recommande Tigase Messeger. It's written in GWT and has good support — especially if Tigase is the server you use.

Both of these libraries are pure javascript and use BOSH for communicating with the XMPP server.

cstar
My server is ejabberd, which has built-in BOSH support. I'm starting to think Strophejs is my best option.
Andrew
Definitely going with StropheJS. Thanks for the tips.
Andrew