1. Főoldal
  2. Cikkek
  3. Dev
  4. [Értesítések a weben] 3. rész: Azonnali értesítések

[Értesítések a weben] 3. rész: Azonnali értesítések

Dev

Weboldalunkon előfordulhat hogy valós időben, vagy legalábbis kis időeltéréssel szeretnénk értesítéseket küldeni a felhasználónak. Ilyen lehet egy chat-rendszer, de egyszerűbb esetekben is szükség lehet ezekre. Az értesítés megjelenítése valamilyen formában nem túl bonyolult, de a szerverről az értesítések eljuttatása a felhasználóhoz bonyolultabb lehet, így több megoldás közül válogathatunk:

Ajax

Ilyenkor egy szabványos HTTP lekérés megy végbe, de a háttérben. Ennek megfelelően a kliens küld lekérést a szerver felé, ami válaszol arra.

Valós idejű értesítések esetén viszont nem a legjobb ez a megoldás: Ha túl sok lekérést küldünk a szerver felé, akkor leterheljük azt, ha viszont ritkán kérjük le az értesítéseket, akkor egyáltalán nem lesz valós idejű.

Long-polling

Szinte teljesen ugyanaz mint az Ajax lekérés, annyi különbséggel, hogy a szerver nem válaszol azonnal a lekérésre, csak amikor van új értesítés. Hátránya, hogy a kapcsolat egy idő után megszakad, ilyenkor a kliensnek újabb lekérést kell megnyitnia.

Server Sent Events

Az előzőekkel ellentétben itt már a kapcsolat megnyitása után a szerver tud közvetlenül a kliensel kommunikálni, viszont a kliens nem tud a szerverrel kapcsolatba lépni. Viszont ajax-al együtt használva már egy jó valós idejű értesítési rendszert készíthetünk. Hátránya, hogy a Microsoft böngészőprogramja még nem támogatja.

Websocket

A kapcsolat megnyitása után egy kétirányú csatornát kapunk, mind a szerver, mind a kliens tud valós időben üzeneteket küldeni. Ráadásul minden modern, népszerű böngészőn működő technikáról van szó.

Valós idejű értesítésekhez szerver oldalon érdemes eseményvezérelt program írására alkalmas nyelvet választani, mint amilyen a Node.js. Természetesen ez nem jelenti azt hogy ha a weboldalunk másmilyen nyelvben van megírva, akkor az egészet kezdhetjük elölről: Beállíthatunk csak az értesítések kezelésére szolgáló szervert, ami a fő szerverrel kapcsolatban áll. Így viszonylag kis munkával egy jól működő rendszert kaphatunk eredményül.


Kliens oldalon az értesítés megjelenítésére nem csak a weboldalon belül van lehetőségünk, hanem megjeleníthetjük azt a fejléc címében, használhatunk hangértesítést vagy asztali értesítést is. Első kettő nagyon egyszerűen elvégezhető:

document.title = 'Új értesítés';
var audio = new Audio('audio.mp3');
audio.play();
 

Asztali értesítés megjelenítése sem sokkal bonyolultabb:

vmarci21 profilképe
Veszter Márton @vmarci21 +540 Weblap fejlesztő, az IntoMedia tagja. PHP, JavaScript és MySql témák mellett érdekli a Windows, Linux disztribúciók, Android fejlődése, az IT biztonság, és az újdonságokat felmutató IT termékek.
0 hozzászólás
Hozzászóláshoz jelentkezz be vagy Regisztrálj!