Dobrý den, chtěl bych se zeptat, jestli je někde nějaký návod pro tvorbu chatu. Chat by měl být takový, že si může psát pouze jedna osoba s druhou osobou. Osoby budou mít jména a vše ostatní uložené v databázi. Našel jsem jen návody na jednu velkou chatovací místnost a to já nechci... Chci něco na způsob facebooku. Stačí nějaký malý návod. Pak se snad už chytnu :-D . Předem děkuji za všechny reakce :-D
Fórum › PHP
Chat
#3 asija
Ani tu si nepomozes bez javascriptu. Pokial chces aby to fungovalo ako na fb, musis dokonca zvladnut pokrocilejsie veci, napr. asynchronne requesty (AJAX).
Dokonca ak planujes vela sucasnych uzivatelov, ani php/mysql riesenie nemusi byt to prave.
#4 Ericsko
Dobrý deň,,
zaujíma ma aké je najlepšie riešenie pre chat s viacerými užívateľmi,, zápis do DB alebo textového súboru?? alebo iný spôsob??
Poprosil by som rady pre chat ktorý ma spĺňať funkciu pre 100vky - 1000ky užívateľov,,, nie je podstatný počet len chcem vedieť čo je rýchlejšie, a používa sa pre chat....
Ďakujem za rady...
To mas tezky. Zalezi na tom, jake mas moznosti a prostredky. Pokud mas diskove pole nebo pamet, tak si muzes dovolit drzet db soubor v pameti. Db soubor je vzdycky soubor. Vyhledavani v souboru, kdyz to dela mysql, tak je to obvykle rychle. Ale muzes pouzit i php program SQL lite http://www.root.cz/…a-lehke-sql/ . Muzes pouzit system, ktery pouziva doku-wiki, ktere tez umi fungovat s i bez mysql.
Klasicka mysql klidne zvladne 1.000.000 radku, pokud mas spravne indexy. SQL lite bude samozrejme pomalejsi.
Pokud budes treba jednou za hodinu promazavat radky, tak se pri 1000 uzivatelich nejspis pres 10 mil nedostanes. Pripadne lze udelat dve-tri, kdy jednu promazes kazdych 20 min a z ostatnich dvou budes vyhledavat radky uzivatelu.
0-20: ukladas 1, hledas 1,3, smazes 2
20-40: ukladas 2, hledas 1,2, smazes 3
40-60: ukladas 3, hledas 2,3, smazes 1
Promazani cele tab bez podminek je rychlejsi. Vyhledavani radku v jedne nebo ve dvou tabulkach, na tom tolik nesejde. ale tim bych se vubec nezatezoval do te doby nez ti skutecne nebude stihat ta jedna tabulka.
Jak je to s tou pameti... Kdyz to das do pameti, tak obvykle db i soubor je stejne rychly. Zalezi pak uz na zpusobu vyhledavani. Pokud mas neco jako SQL lite, tak to si dela indexy jako mysql. Pokud nemas, tak si musis napsat program, ktery ti nad souborem udela indexy pro vyhledavani radku.
Není důvod promazávat databázi. Pokud to uděláš chytře, budeš z databáze brát jen když se uživatel přihlásí a nebo když se bude chtít podívat do historie. To zas takové nároky nemá.
Mluvím o websocketech. V PHP se to řeší dost blbě, ale veškterou konverzaci mužeš udržovat jen u uživatelich a třeba do databáze budeš vkládat jednou za minutu. Tímto způsobem bude zatížení databází minimální. Celkové zatížení na serveru nebude moc velké, protože ten jen bude přeposílat sockety z jedné strany na druhou.
Ale jak říkám, v PHP se sockety implementují velmi těžko. Raději bych zvolil nějakou jinou technologii. Co jsem slyšel, tak v Node.JS to jde relativně snadno, ale nemám s tím vlastní zkušenosti.
Pokud by ses přece jen rozhodl pro PHP, tak mi mužeš popřípadě napsat. Jednou sjem něco takového taky zkoušel. Aspoň do základu bych možná dokázal poradit. patrik<zavinač>valkovic<tecka>cz
S pzodravem
Patrik Valkovič
#7 Patrik Valkovič
No máte pravdu, NodeJS je vynikajúca technológia, ale dôvod prečo chcem využiť PHP a bez websocketu je ten, že by som chcel aby to fungovalo na bežných platených webhostingoch.
S NodeJS experimentujem ale len na localhoste lebo slovenský a český NodeJS hosting som ešte nedávno nemohol nájsť.
Teraz pozerám, že už je možné si zakúpiť lacný server na skúšanie, čiže neskôr sa začnem venovať aplikáciam cez Node ale teraz by som rád spravil php chat, čiže skúsim podľa tipov čo som dostal a uvidím či to bude mať zmysel :)
Každopádne ďakujem za všetky rady,,, určite vyskúšam... :)
* Taky se da setrit datovy tok pri pouziti zipu (na serveru nebo v php) nebo base64.
* Pak je dobre formatovat radky pro vystup presne tak, jak budou na obrazovce a tak ulozit do db. Pripadne zvolit nejaky miniformat (csv) a pak to formatovat pres js.
* Tez jsem experimentovl s tim, ze pro pasivni uzivatele navysuji postupne cas refresh az na 5-10 min, dokud neklikne na obrazovku (onfocus, onblur). (Coz treba ted mam pustenej chat, kde treba hodinu nemam cas cist, ale porad nejsem odhlasen a porad mi nacita nove radky. A tam by takova funkce usporila.)
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
Chat na webstranku — založil evryl
Moderátoři diskuze