3 ms·
Well, buffering that kind of stuff, is one of the more complex parts of an XMPP server (XEP-0013, XEP-0160, XEP-0280, XEP-0313). AFAIK IRC bouncers tunnel all t
by JepZ 9y ago
Well, buffering that kind of stuff, is one of the more complex parts of an XMPP server (XEP-0013, XEP-0160, XEP-0280, XEP-0313). AFAIK IRC bouncers tunnel all the traffic and are not mobile aware. So to reduce battery usage, XMPP has some functionality within the protocol (XEP-0198, XEP-0352). So after optimizing your bouncer approach you will probably come up with what XMPP does (more or less, maybe with a few minor exceptions).
XMPP also knows how to do P2P connections (that is what 'jingle' is actually about, not just calls), but I think that the problems of P2P are actually the reason why there are still so many problems with XMPP calls. I mean if you want to build P2P that 'just-works' you will need STUN/TURN servers and while XMPP servers like ejabberd bring them with a standard installation, TURN servers require a lot of ressources (bandwith). At the same time the others parts of a XMPP server are very lightweight so that the TURN server causes scaling issues.
For anyone interessted in the matter I highly recommend taking a look at the 'conversations' website (https://conversations.im/#optimizations https://conversations.im/#optimizations).