Klijent i server razmenjuju poruke (stanzas) u okviru dva XML stream-a. Server rutira poruke na osnovu odredišne adrese, lokalnim korisnicima, ili drugim XMPP serverima ako je primalac na drugom serveru. Server takođe prima konekcije od drugih servera, i na taj način prihvata poruke poslate od udaljenih lokalnim korisnicima. Za svakog lokalnog korisnika, server loguje poruke u bazi podataka. Koja baza je u pitanju već ne bih znao da ti kažem, verovatno neka Google-tova home-made distribuirana fault-tolerant db.
Za više detalja, predlažem da pročitaš ponešto o XMPP protokolu, možeš da kreneš odavde:
http://www.jabber.org/protocol/
http://www.xmpp.org/
Takođe, možeš da uzmeš neki Jabber klijent koji ima XML konzolu, kao što je Psi, Tkabber ili Exodus, što će ti pomoći da bolje shvatiš kako XMPP funkcioniše, koji su različiti tipovi stanzas-a i tako dalje, kao i da eksperimentišeš malo.
int rand(void);
Those who do not understand Unix are condemned to reinvent it, poorly.
Upali lampicu — koristi Jabber!