Chcel by som vedieť či sa dá spraviť asynchrónna odpoveď na ajax požiadavku. Napadlo ma naprogramovať chat, ale po chvíľkovom hľadaní na internete som zistil, že "srdce" všetkých PHP, Javascript chatov tkvie v setTimeOut("getMessage()", 1000);
Nedalo by sa to spraviť tak, že keď užívateľ odošle svoju správu, tak php script sa pozrie do databáze, zistí si údaje pripojených užívateľov, a pošle im novo napísanú správu?
Alebo tak, že každý užívateľ otvorí ajax spojenie s php scriptom, ktorý odpovie na požiadavku v momente, keď niekto napíše novú správu (teda ak nikto nič nepíše čaká)... Bolo by to možné?
Fórum › PHP
Php, ajax asynchrónne odpovede
Ne, HTTP funguje stylem pozadavek-odpoved.
ajaxem se stejne taky musis dotazovat.... ikdyz by se dalo udelat neco jako pooling... by hodil ajax request a script by cekal maximalne treba 10sekund nebo do prvni prichozi zpravy nez by mu to odeslal zpet...
Dalo by sa to spraviť "streamovaním". Rovnako ako keď downloaduješ nejaký veľký súbor. Vytvorí sa jedno permanentné spojenie (client->server) po ktorom stále tečú data zo servera klientovi. No pri chate sa tie data budú prenášať iba keď bude treba. Ako keby ten download "haproval". Raz to ide, chvíľu čaká... Na strane klienta využiješ to, že odpoveď servera sa pomocou xhttprequest dá čítať ihneď ako príde, nemusíš čakať na ukončenie spojenia. Ak náhodou spojenie padne, tak ho vytvoríš odznova, takže to bude môcť fungovať aj na príncípe refreshovania, aj permanentného spojenia. Ak bude chcieť klient poslať správu na server, jednoducho vytvorí paralelne ďalší request a odošle post.
Problém takéhoto riešenia je v tom, že každý klient vytvorí jedno permanentné spojenie a každé spojenie bude predstavovať jeden php script v pamäti. Ono to dosť zaťaží server... A garantujem ti, že to nebude jednoduché nakodiť, minimálne bude potrebné vyriešiť tu záťaž servera a taktiež to bude chcieť dobre sa vyhraťs javascriptom (parsovanie odpovedí, kódovanie,...)
>> ikdyz uz i web rozhrani jsou
Viz mibbit.com. Verim ale, ze tam ale maji nejakou nePHP komponentu, ktera to pripojeni na IRC resi a mibbit je pak uz jenom proxy. Vlastni webovy chat je tam resen pres normalni AJAX.
To KIIV : Javascript v browseri so soketmi nepohne. Browser poskytuje akurát ten xhr na odosielanie asynchronnych requestov po protokoloch, ktoré štandardne podporuje browser (http,ftp,..).
Ale java by tie sockety mohla mať, takže javascript->java->socket->irc by už mohlo ísť...
http://www.google.com/search?q=accessing+java+javascript
http://www.google.com/search?q=java+socket
Myslím však, že keď niekto robí webový chat, tak s irc serverom nechce mať nič spoločné a urobí to po svojom. Teoreticky by sa dal spraviť vlastný chat server jedným php scriptom odpáleným z príkazového riadku (cli). V php tie sockety nie sú až taký problém. Navyše by sa to databázovo dalo ľahko prepojiť so zvyškom webovej aplikácie a mohlo by to bežať na príncípe refreshovania, streamovania až po sockety cez javu...
To lubo : no dam ti zatim ukol:
- kde se zobrazuje ten potencialni chat
- kde se vykonava PHP
az todle zjistis je mozne ze prijdes i na pripadnou spojitost mezi tim
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
PHP/AJAX/jQuery — založil Matthew
JQuery ajax + php — založil Marek
AJAX - získání odpovědi od PHP souboru — založil MaxDJs
Zprovoznění FullCalendar pod ajax a php — založil jAkErCZ
Predám knihy (C++, PHP, AJAX, Python...) — založil marrten
Moderátoři diskuze