flash-php-mysql kommunikáció chat kialakításához
Szeretnék egy Flash felületű Chat oldalt kialakítani. A működtetés elvére lennék kíváncsi esetleg rövid kis mintának örülnék. Lenne egy ötletem, de szerintem ennél jóval kifinomultabbak léteznek.
Az ötlet:
Flash oldalon a kliensek egy gomb hatására az új hozzászólásokat egy PHP-nak küldik el, ami mysql táblában tárolná ezeket.
A flash bizonyos időközönként meghívna egy PHP-t, ami az új hozzászólásokat elküldené vissza a kliensnek.
De azt szeretném valahogyan kiküszöbölni, hogy ha nincs új hozzászólás, ne legyen felesleges kommunikáció.
Tehát a flash ne hívja a PHP-t és az ne küldjön vissza semmit. A PHP oldalon egyszerűen megoldom, hogy ne küldjön semmit, a probléma a felesleges PHP hívással van. Az lenne a jó megoldás, hogy a php valahogyan automatikusan küldene a csatlakozott klienseknek adatot, ha új hozzászólás érkezik. És itt van a pont ahol elakadtam. Ehhez kérnék segítséget, illetve ha jobb ötlet van szívesen fogadom.
Köszönöm előre is!
■ Az ötlet:
Flash oldalon a kliensek egy gomb hatására az új hozzászólásokat egy PHP-nak küldik el, ami mysql táblában tárolná ezeket.
A flash bizonyos időközönként meghívna egy PHP-t, ami az új hozzászólásokat elküldené vissza a kliensnek.
De azt szeretném valahogyan kiküszöbölni, hogy ha nincs új hozzászólás, ne legyen felesleges kommunikáció.
Tehát a flash ne hívja a PHP-t és az ne küldjön vissza semmit. A PHP oldalon egyszerűen megoldom, hogy ne küldjön semmit, a probléma a felesleges PHP hívással van. Az lenne a jó megoldás, hogy a php valahogyan automatikusan küldene a csatlakozott klienseknek adatot, ha új hozzászólás érkezik. És itt van a pont ahol elakadtam. Ehhez kérnék segítséget, illetve ha jobb ötlet van szívesen fogadom.
Köszönöm előre is!
megfelelő eszközök
Socket
Jó lenne egy példa, ahogy egyszerűen Socket-en kommunikál a két program, mert elakadtam. :(
Socket hiba
Biztosnági korlát
Flash Szerver
Az hogy a player hova csatlakozhat ki az a security sandbox és a crossdomain.xml -ek kombinációiból adódik.
Egyébbként vagy benyeled a fölösleges php hivásokat, vagy valamilyen stream szerverrel próbálkozol.
én nem használnék flasht, javat egy szimpla chat kedvéért
http://chat.theba.hu
100% html + css + javascript + php :o)
igaz, mivel szabadidőmben faragom, közel sincs még kész, de már nincs messze az alagút vége :p
Milyen terhelést bír?
jelen helyzetben még nem, de...
A probléma az, hogy nem egyedül én vagyok a szerveren, és nincs jogom (újra)indítani az apache-ot pl. No meg, nem egyedül használom a szervert, így bedögleszteni nem nagyon szabad. Ha rá tudom venni valamikor a közeljövőben a szervertulajt, hogy maradjon fenn egy kicsit éjjel, és legyen online is, akkor lesz mesterséges terheléses teszt.
De ez is annyit jelent, hogy a már kész, előre gyártott scripteket fogom futtatni 5-6 különböző gépről.
Sajna egy időben, 20-nál több embert nem hiszem, hogy be tudnék szervezni egy valódi teszthez. :( Pedig az lenne az igazzy.
Az eddigi adatok amúgy biztatóak. Az extra hosszú sorok beszúrása sem tart tovább 0.05sec-nél, a lekérdezések ideje meg eddig még nem kúszott 0.015 fölé. Teljes PHP futásban mérve, fájlba logolva.
Igaz, eddig egyidőben 15 ember volt jelen. Plusz, nem dedikált szerver, így nehéz megmondani, hogy valójában mekkora is lehet a terhelés a szerveren.
Egyébként csúszó polling-idő van benne, azaz minél régebben szóltál hozzá, vagy küldtél adatot a szerverre, annál ritkábban kérdezel le a szerverről. Minden lekérdezésnél 1sec-cel nő a két lekérdezés közti idő, egészen addig, amíg inaktivitás miatt ki nem rúg a cucc.
Szóval hamarosan próbálkozom terheléses teszttel, és ha érdekel, közzéteszem. :) Csak előtte be kéne fejezni az utolsó "apróságokat". (pl. profil-szerkesztés, meg ilyenek... :D)
érdekel
flash chat
Van egy chat protokoll
A HTTP architerktúra (request-response) egyértelműen alkalmatlan erre a feladatra. Legfeljebb készíthetsz pluszmunkával egy áthidaló réteget (cometet iframe-mel vagy pollinggal), de sose lesz olyan jó, mint ami erre lett kitalálva.
ja, van
Amúgy igazad van, sosem lesz olyan jó, csak elegendően jó tud lenni egy ilyen pollingos cucc. A körülményekhez képest. :D
valóban
meg az...
Nem elhanyagolható szempont, ha az ember nem egy szűk rétegnek fejleszt. Márpedig tetszik, vagy sem, a csetelők jórésze melóhelyről (is) csetel. Tehát ha letiltják neki az IRC-re általában használatos portokat, de a 80-as korlátozás nélkül megy, akkor máris ott a dilemma. Megéri használni az IRC-t? Kevesebb júzer....
Arról nem is beszélve, hogy sok dolog megoldható már JS-sel, pofonegyszerűen. A JAVA-s mammut, agyzsibbasztó, csetnek csúfolt csigalassú izékre meg kár is szót vesztegetni. Ha nem lehet JS, akkor inkább flash.