According to XMPP RFC 6120 and from XMPP - The Definitive Guide, setting up a client-to-server session consists of the following phases:
- Initiating a TCP connection to the server
- Opening an XML stream
- Negotiating various stream features
- Authenticating with the server
- Selecting a resource
- For IM applications, requesting the roster and sending initial presence
In the case, clients are small IoT connected devices and they needs to keep these streams open all the time, so that server can contact them.
If I want to create the my own xmpp server
- which ones among these are the best libraries to start with which should support rfc 6120?
- Any design guidelines to start with ?
If creating your own xmpp server is a terribly idea ?
Among these servers ('openfire', 'tigase') which are best for extending its behaviour ?
How many concurrent connections can xmpp server can generally handle?