I followed steps below to have a running XMPP server.
- Tigase XMPP server installation (check the gist below)
- Connecting with Spark and Pidgin
- SleekXMPP client example (check the gist below)
- ConverseJS example (check the gist below)
Tigase is a GPL licenced XMPP server which is scalable and performs well. There is 2 more popular XMPP servers ejabberd and Openfire which can be good choices. Openfire is Apache Licenced as well but it is for middle size projects. I wanted to try Tigase, it seems well and easy to setup.
Spark and Pidgin
Clients should be able to resolve XMPP server hostname. This can be done via adding the server to hosts file. Otherwise it is not possible to connect. Add to hosts file myhostname xmppserverip record.
This is XMPP client python library. There are some other libraries but this is the way to go. Check SleekXMPP.com and the gist below.
ConverseJS is XMPP Client for browsers. It is built on Strophe.js which is the most popular Bosh client. Check ConverseJS.org and the gist below.
Bosh vs Websockets
Still there is no completed standart for websockets, XMPP servers started to support websockets. Tigase supports as well. But there is a few and early stage clients which supports websocket. There is good post from Mr. Joes.