I'm trying to build a real-time chat component for an existing niche website that was built from the ground up using PHP.
We started to use APE server but we ran into an issue related to SSL support and the community over there seems awfully unresponsive. So I'm beginning to evaluate alternative solutions.
I'm looking for a long-term solution that places as little dependency on someone else as possible. It seems like XMPP is the best way to go in terms of protocol, though I have zero experience with this. I wouldn't mind learning, though I'm interested in hearing what the community thinks about it and/or alternatives.
This will be used for user<>user chat, group chat, and site-wide chat.
I'm looking for a long-term solution that places as little dependency on someone else as possible
XMPP is an open and standards based protocol and you can easily deploy your own XMPP servers. So you definitely don't have to be dependent on any single vendor.
I recently wrote an IM web-client for the Plone CMS using XMPP and I'm very happy with the result.
This will be used for user<>user chat, group chat, and site-wide chat.
The implementation I wrote has single user and group chat (but not site-wide).
You can see a screencast of it on my blog
The main technologies involved:
Converse.js is the code that actually produces the IM client. The code is loosely coupled with the Plone CMS and it should be possible to completely decouple it and make it portable to any system and even static HTML sites.
Currently there's not much to see in the converse.js Github repo and I apologise for that. I'll be adding docs, an example site and spend time on completely decoupling converse.js in the coming weeks.