Kezdőoldal » Számítástechnika » Weblapkészítés » Real time ajax chat?

Real time ajax chat?

Figyelt kérdés
Egy jól használható és kész oldalba egyszerűen integrálható real time ajax chat-et tudnátok ajánlani?

2014. júl. 13. 04:49
 1/3 anti paladin ***** válasza:

Attól függ mi kell neked, válogathatsz:

[link]

2014. júl. 13. 07:03
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
Socket.IO gyorsabb és jobb. Programozási tudás szükséges hozzá.
2014. júl. 13. 12:27
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
100%

Az AJAX nem chatre és bármi más real-time alkalmazásra való.


Az AJAX csupán annyi, hogy külső forrásból tudunk a már betöltött oldalon dolgokat módosítani. De ugyanúgy HTTP-t használ, vagyis minden egyes adat küldésekor létrejön egy új kapcsolat, a kliens új kérés fejlécet és adatot küld, a szerver valamilyen módon feldolgozza a kérést, majd küld egy válasz fejlécet és adatot, és bezáródik a kapcsolat.


Vagyis:

1. kérés: kliens => szerver

2. feldolgozás: szerver

3. válasz: szerver => kliens

És itt zárul a dolog.


Láthatod, hogy csak az kaphat választ a szervertől, aki kérést küldött felé. Egy chat alkalmazásnál meg ugye ha valaki elküld egy üzenetet, akkor azt több kliensnek is ki kéne küldeni. Ez HTTP-vel lehetetlen, nem tudsz szerver oldalról kezdeményezni, így új üzeneteket küldözgetni.

Csak úgy tudnád megoldani, ha szerver oldalon tárolod valahogy a küldött üzeneteket, és az összes kliens néha küld egy olyan kérést a szerver felé, amiben lekéri ezeket a tárolt üzeneteket. Ugye ez csak akkor lehet real-time (és akkor is csak kvázi!), ha ezek a kérések nagy gyakorisággal történnek. Mondjuk másodpercenként küldesz egy kérést, amit a szervernek fel kell dolgoznia, válaszolnia kell, amiben esetleg benne van(nak) chat üzenet(ek). De ugye nem is biztos, hogy jött üzenet abban az egy másodpercben, és akkor végül is felesleges volt ez a kérés-válasz játék.


Tehát összefoglalva a probléma: Túl sokszor kell kapcsolatot felépíteni, ami sok idő, és túl sok felesleges fejlécet kell küldeni, és a fejlécet mérete meg viszonylag nagy az értékes adathoz képest. Plusz a real-time dolog csak kvázi tud megvalósulni.


Ezeket a problémákat WebSocket-tel lehet kiküszöbölni, ami egy real-time kapcsolatot tud biztosítani neked webes alapon a szerver és a kliens között. Ott nem kell kapcsolat építeni és fejléceket küldeni minden adat küldése esetén, illetve lehetséges a szerver oldalról indított küldés is. Kezelése viszonylag egyszerű, az AJAX-hoz hasonlóan JavaScript programozással oldható meg.


Ezektől függetlenül viszont sajnos fennáll még a szerver oldal problémája. A fő gond, hogy egy átlagos fejlesztő szerver oldalon a feldolgozást az esetek 99%-ában PHP-val oldja meg (mivel egy normál tárhelyen általában csak ez adott). Úgy meg minden egyes kérésre újra és újra le kell futtatni a scriptet a szerveren, ami erőforrás-igényes, és így lassú is. Ráadásul ez nem is illeszkedik a WebSockethez, ugyanis ott egy folyamatos kapcsolat szükséges, ami egy folyamatosan futó scriptet kíván szerver oldalon.

Erre jelent megoldást az előző válaszoló által javasolt Socket.IO, ami a Node.js egy modulja. Ezeknek lenne érdemes utána nézni, viszont ezeket sajnos nem fogod tudni felrakni egy normál tárhelyszolgáltatóhoz, általában olyan gépen bűvészkedhetsz vele, amihez teljes jogosultságod van.

2014. júl. 13. 16:06
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!