OK, ik zit met het volgende probleem:
Ik ben bezig met het maken van een chat, ik wil hiervoor het liefst helemaal niets geen databaseverkeer gebruiken. De chat maakt gebruik van SmartIRC, een IRC-client voor PHP. SmartIRC moet blijven draaien zolang je een verbinding wilt blijven houden met IRC dus dit is een script wat op de achtergrond blijft draaien in een iframe (zonder page refresh dus).
De communicatie vanaf PHP naar javascript werkt al door een javascript functie te echoén gevolgd door een flush(); maar nu komt dus de bottleneck.. Hoe communiceer ik vanaf javascript rechtstreeks naar mijn PHP script? Tot nu toe de enige methode wat ik me kan bedenken is vanaf javascript een ander PHP script aan te roepen wat op zijn beurt hetgeen wat naar de PHP script gestuurd moet worden tijdelijk naar een tekstbestand schrijft die later dus door weer uit wordt gelezen door de PHP script die op de achtergrond draait.
Over het gebruik van een tekstbestand als een soort tussenbuffer heb ik zo mijn twijfels, is dit wel stabiel genoeg? zal dit qua performance wel goed presteren als er bijvoorbeeld 50+ mensen in de chat komen?
Wat ik verder nog had geprobeerd, wat naar mijn zeggen de beste oplossing zou zijn geweest, was het zetten van de cookie binnen javascript en dit vervolgens ophalen via PHP, maar de cookie wordt slechts éénmalig bij de pageload opgehaald. Wanhopig probeerde ik dit op te lossen door de cookie op te halen via 'unserialize(file_get_contents('http://localhost/chat/cookie.php'))' waarbij cookie.php dus 'echo serialize($_COOKIE);' bevatte. Dit werkte echter niet, ik kreeg een lege array terug terwijl er wel data in de cookie stond, zag ik hier iets over het hoofd, of..?
Natuurlijk zou je zeggen, 'doe het dan gewoon via de database' waar ik op mijn beurt weer terug zou komen op het performance gedeelte.. Als er 50+ mensen op de chat zitten en ik laat de PHP script om de seconde kijken of er nog nieuwe berichten zijn zit ik dus al op 50 queries per seconde, wat ik de server niet graag aandoe.
Wie kan me vertellen wat ik het beste kan doen..?
Ik ben bezig met het maken van een chat, ik wil hiervoor het liefst helemaal niets geen databaseverkeer gebruiken. De chat maakt gebruik van SmartIRC, een IRC-client voor PHP. SmartIRC moet blijven draaien zolang je een verbinding wilt blijven houden met IRC dus dit is een script wat op de achtergrond blijft draaien in een iframe (zonder page refresh dus).
De communicatie vanaf PHP naar javascript werkt al door een javascript functie te echoén gevolgd door een flush(); maar nu komt dus de bottleneck.. Hoe communiceer ik vanaf javascript rechtstreeks naar mijn PHP script? Tot nu toe de enige methode wat ik me kan bedenken is vanaf javascript een ander PHP script aan te roepen wat op zijn beurt hetgeen wat naar de PHP script gestuurd moet worden tijdelijk naar een tekstbestand schrijft die later dus door weer uit wordt gelezen door de PHP script die op de achtergrond draait.
Over het gebruik van een tekstbestand als een soort tussenbuffer heb ik zo mijn twijfels, is dit wel stabiel genoeg? zal dit qua performance wel goed presteren als er bijvoorbeeld 50+ mensen in de chat komen?
Wat ik verder nog had geprobeerd, wat naar mijn zeggen de beste oplossing zou zijn geweest, was het zetten van de cookie binnen javascript en dit vervolgens ophalen via PHP, maar de cookie wordt slechts éénmalig bij de pageload opgehaald. Wanhopig probeerde ik dit op te lossen door de cookie op te halen via 'unserialize(file_get_contents('http://localhost/chat/cookie.php'))' waarbij cookie.php dus 'echo serialize($_COOKIE);' bevatte. Dit werkte echter niet, ik kreeg een lege array terug terwijl er wel data in de cookie stond, zag ik hier iets over het hoofd, of..?
Natuurlijk zou je zeggen, 'doe het dan gewoon via de database' waar ik op mijn beurt weer terug zou komen op het performance gedeelte.. Als er 50+ mensen op de chat zitten en ik laat de PHP script om de seconde kijken of er nog nieuwe berichten zijn zit ik dus al op 50 queries per seconde, wat ik de server niet graag aandoe.
Wie kan me vertellen wat ik het beste kan doen..?