XMPP server a výpadky uživatelů

xmpp

XMPP server a výpadky uživatelů
« kdy: 07. 11. 2012, 16:24:35 »
Mam dva problemy, ktere spolu do jiste miry souvisi. Na svem VPS pouzivam xmpp server PROSODY. Je skvely, ale mam s nim trochu problem. Nevim, zda se tyka tento problem pouze xmpp serveru prosody nebo je to problem xmpp protokolu/standardu.

Problemy:
1) Pokud se uzivatel odpoji a z nejakeho duvodu se nestihne provest regulerni odhlaseni uzivatele, zustane uzivatel online - treba i 20 min.. Stejne tak se to chova pri vypadku internetu.
2) Pokud nastane prvni pripad, vsechny zpravy, ktere mu v tu dobu nekdo posle jsou ztraceny - tedy, nebudou doruceny a nedojde ani k zadnemu chybovemu hlaseni (odesilatel tedy ani netusi, ze zprava nebyla dorucena).

Otazky / reseni:
Ad 1) Pro prosody existuje mod_ping, ktery umozni uzivatelum pingovat server (mam jej aktivni). Opacne to nefunguje? Proc server nepinguje sve uzivatele, zda jsou dostupni a po timeout je automaticky uvest do stavu offline?
Ad 2) Pokud se nepodari zpravu uzivateli dorucit, musi prece zprava zustat na serveru se stavem "ceka na odeslani". Server se ma snazit zpravu odeslat do te doby, nez bude uspesne odeslana (tedy, potvrzeno jeji prijeti ze strany klienta). Takhle to snad nefunguje?

Chtel bych vas pozadat o nejake reseni, pokud existuje.
« Poslední změna: 07. 11. 2012, 20:15:50 od Petr Krčmář »


xmpp

Re:XMPP server a problem s vypadky uzivatelu
« Odpověď #1 kdy: 07. 11. 2012, 16:40:06 »
Jeste doplnim ... connection timeout by mel resit XEP-0198: Stream Management, ktery pro aktualni verzi dostupny bohuzel neni. Tento standard resi modul mod_smacks, ktery je dostupny v betaverzi az od verze 0.8. Ja pouzivam stabilni 0.7. Takze toto by melo resit prvni problem.

Ted jeste druhy.

Re:XMPP server a problem s vypadky uzivatelu
« Odpověď #2 kdy: 07. 11. 2012, 16:40:52 »
nebo je to problem xmpp protokolu/standardu.
Ne. Je to problém buď implementace nebo nastavení.

2) Pokud nastane prvni pripad, vsechny zpravy, ktere mu v tu dobu nekdo posle jsou ztraceny - tedy, nebudou doruceny a nedojde ani k zadnemu chybovemu hlaseni (odesilatel tedy ani netusi, ze zprava nebyla dorucena).
Xmpp funguje nad TCP, takže pokud se ten server chová takhle, je to jednoznačně jeho blbost.

Proc server nepinguje sve uzivatele, zda jsou dostupni a po timeout je automaticky uvest do stavu offline?
Rozumný server to samozřejmě dělá.

Chtel bych vas pozadat o nejake reseni, pokud existuje.
Nainstalovat rozumnější server - např. ejabberd.

xmpp

Re:XMPP server a problem s vypadky uzivatelu
« Odpověď #3 kdy: 07. 11. 2012, 16:47:52 »
Neco jsem prehledl. To rozsireni, ktere je zatim v betaverzi ... zrejme resi oba problemy.

Citace
When using XEP-0198 both the client and the server keep a queue of the most recently sent stanzas - this is cleared when the other end acknowledges they have received the stanzas. If the client disconnects, instead of marking the user offline the server pretends the client is still online for a short (configurable) period of time. If the client reconnects within this period, any stanzas in the queue that the client did not receive are re-sent.

If the client fails to reconnect before the timeout then it is marked offline as normal, and any stanzas in the queue are returned to the sender as a "recipient-unavailable" error.

Citace
Nainstalovat rozumnější server - např. ejabberd.
ejabberd je velky moloch. Navic podle http://www.root.cz/clanky/jak-si-spustit-vlastni-jabber-server-za-15-minut/ ho nedoporucuji ani vyvojari z jabbim.cz. Proto jsem zvolil Prosody.

Re:XMPP server a problem s vypadky uzivatelu
« Odpověď #4 kdy: 07. 11. 2012, 16:55:30 »
ejabberd je velky moloch.
To je samozřejmě otázkou názoru/vkusu. Podle mě je to výborný modulární server s neuvěřitelnými možnostmi, které samozřejmě nemusíš využívat. Je napsaný v jazyce, který se pro takový účel mimořádně hodí, a dá se parádně rozšiřovat, skriptovat a ladit.

Samozřejmě záleží na účelu - pokud to chceš jenom pro sebe a dva další uživatele, tak to pak máš trochu jiná kritéria...

Navic podle http://www.root.cz/clanky/jak-si-spustit-vlastni-jabber-server-za-15-minut/ ho nedoporucuji ani vyvojari z jabbim.cz. Proto jsem zvolil Prosody.
V tom článku se ani tak nepíše o tom, že ho nedoporučují, jako spíš, že ho používají :) - a to už tři roky.


xmpp

Re:XMPP server a problem s vypadky uzivatelu
« Odpověď #5 kdy: 07. 11. 2012, 17:07:17 »
Samozřejmě záleží na účelu - pokud to chceš jenom pro sebe a dva další uživatele, tak to pak máš trochu jiná kritéria...
Ano, mam jej pro osobni uziti a uzivame jej jen dva uzivatele. Mam rad lightweight servery. Nicmene, upgraduji na verzi 0.8, ktera je jak jsem se dival stable (v Debianu je stable 0.7). Nainstaluji zminovany modul a pokud bude vse ok, u prosody zustanu. Moduly se daji taky hezky upravovat/psat. Ja si upravil modul mod_offline.lua tak, ze mi chodi zpravy prostrednictvim mailu na mobil, kdyz jsem offline (rozkouskovane tak jak je potreba).