Desktop XMPP Chat App
In The Lab | Jan 9, 2014
There comes a time in every company where you'll need a good real-time communication tool. Once you start getting into email threads with 10s or 100s of replies you really realize that email was not designed for that type of communication. It's at that point you'll start to look for a better solution, which is exactly what we did. We tried gTalk, but didn't like the way we had to manage employee accounts, the connections between them and so on - huge pain. There are products like Yammer, but we didn't need an internal social network or any of the other extra bloat. We just wanted a way to quickly communicate with others around the office, have the ability to all be in one 'room' too so we can plan things like Friday lunch without playing email/phone tag, and also an easy way to quickly on-board new employees without too much hassle with friend lists and what-not. Enter XMPP. XMPP, or, Extensible Messaging and Presence Protocol, is a set of open protocols intended for (near) real-time communication. XMPP allows us to implement the exact features we want, so that's what we did.
After deciding not to re-invent the wheel when it came to the server software side of things, we went with Openfire's XMPP software. Their software handles the administration of the users, groups, rooms, XMPP settings, etc. One great thing about it is the ability to hook into on-premise Active Directory for user accounts, bonus! Once that was configured to our liking we needed a client so we could actually chat. There are a ton of pre-built and free XMPP clients out there but none of them tickled our fancy. We knew we wanted a desktop application and not something that ran in the browser, so we set out to build our own. We're experts with ActionScript here at e-works media, combine that with Adobe's AIRÂ® product and we found a winning match. Again, not wanting to re-invent the wheel we sought out an ActionScript port of the XMPP standard we could use to build our desktop application. After not having much luck finding any actively developed/maintained libraries we were left to create our own. Enter EWMXMPP. EWMXMPP is a set of ActionScript classes that implement the XMPP standard. Our implementation is far from complete, but it covers a significant amount of the standard, basically anything outside file transfers and VoIP calls which we don't have a need for.
All that was left was to slap a UI on top, throw it in the oven at 450Â° for 25 minutes, let it cool for 10 minutes then release! We still can't decide what to do for lunch on Friday.