Avatar billede Daniel.E Praktikant
22. august 2004 - 00:04 Der er 14 kommentarer og
1 løsning

PHP chat

Jeg skal bruge noget fakta om hvordan det er bedst at programmere en PHP chat.

Er det bedst at bruge sessions ?

Er det bedst at bruge MYSQL Database ?

Er det bedst at bruge almindelige filer (men så igen hvorfor ikke session ? ) ??

Er der flere muligheder ??

Hvilken en er bedst, hvis man skulle forestille sig en en chat på 40 personer, og man ikke lige hvade sin egen server stående hjemme med en god internet forbindelse. Men at man skulle tage til takke med et web hotel, på en linie hvor man ikke kunne overbruge forbindelsen, i ved hvordan de er med deres regler.
Avatar billede dennismp Nybegynder
22. august 2004 - 00:18 #1
>> Er det bedst at bruge sessions ?

Jeg ved ikke hvordan du ville bruge sessions. En session indeholder jo kun data for een bruger.

>> Er det bedst at bruge MYSQL Database ?

Mja. Det er nemt at have med at gøre - og du kender sandsynligvis til mysql i forvejen.

>> Er det bedst at bruge almindelige filer

Kunne man nok også - men så skal du til at passe på med at låse filer, så kun een skriver til filen ad gangen. Og du skal så rydde op.. Det kan nemt opstå fejl.

>> Er der flere muligheder ??

Nu skriver du "det bedste"; så ville det nok være at have et program af en slags kørende på serveren som varetager et ting, så det hele ikke skal igennem mysql. Men det får du ikke webhotellet til, så mysql er fint. Og da det "kun" er til 40 brugerer, så burde det være muligt at lave uden at man ødelægger noget.

Alternativ kunne du jo bruge irc-gateway (fx javaapplet, cgi::irc (perl) - kan godt være der findes noget implementeret i php også; kan bare ikke komme på nogle navne).
Avatar billede expnet Seniormester
22. august 2004 - 00:27 #2
jeg giver dig ret dennismp men chat?? er et stort sprøgsmål men er det at lave en skriv-chat i php
Avatar billede Daniel.E Praktikant
22. august 2004 - 00:30 #3
jeg ved godt at du kan bruge en irc gateway, men har også hørt at man skal holde sig fra det. 

Nej, webhotter tilbyder ikke at man kan have en server kørende på deres.  Medmindre man overtaler dem, og tilbyder xtra kontanter, men det er jo op til mig. he he
Avatar billede Daniel.E Praktikant
22. august 2004 - 00:32 #4
det skal være en chat hvor som indeholder der samme som ofir.dk chatten, bare med nolge smeleys, og xtra features. Ikke det store cirkus med faver og levende lys.
Avatar billede Daniel.E Praktikant
22. august 2004 - 00:43 #5
men hvis man skulle bruge en database, ville det så ikke bruge man kræfter på at åbne og lukke forbindelserne hele tiden til databasen..fordi hver gang man skal opdatere et vindue, skal man jo køre det hele igennem igen.
Avatar billede expnet Seniormester
22. august 2004 - 00:52 #6
det synes jeg nu ikke har min egen server og folk brokker sig ikke
Avatar billede dennismp Nybegynder
22. august 2004 - 00:57 #7
Hvorfor skulle man holde sig fra irc? Så kan folk selv bruge en almindelig klient, hvis de har lyst. Jeg regner selv med at bruge det, istedet for at lave en chat fra bunden.

Jeg bruger ikke webchats, så jeg ved ikke hvordan ofir's virker. Jo, du skal have fat i databasen hver eneste gang og hente data. Men hvis du gør det igennem filer, så skal du jo igennem samme process. Åbne, låse, læse, evt tilføje og slette linjer, lukke.. Hver gang. Og når du låser en fil for at skrive til den, kan andre ikke læse fra den. Så det er så dig der får besværet istedet for lade mysql klare det.

Og du kan nok ikke nøjes med een fil pr rum (eller hvad det hedder) - hvis du skal private beskeder. Det kan være man kan bruge javascript til at undgå at man skal have fat i alle beskeder hver gang (sådan man kun får usete-beskeder). Men jeg kender intet til javascript :(
Avatar billede dennismp Nybegynder
22. august 2004 - 00:59 #8
MySQL cacher jo data og tabeller der bruger flittigt brugt, så den burde kunne klare det :).

Hvis jeg skulle lave en php chat her nu, så ville det være php+mysql.
Avatar billede Daniel.E Praktikant
22. august 2004 - 01:05 #9
dennismp >> hvis en klient nu sender noget data som bliver gemt i mysql databasen, og på samme tid skal der hentes noget fra den.  Jeg ved ik så meget om hvordan selve mysql servern fungere. Men hvad sker der så ?? Bliver der oprettet 2 tråde  ?
Avatar billede expnet Seniormester
22. august 2004 - 01:10 #10
så bliver der skrevt til den og læst fra den ikke oprette to samme på samme tid
Avatar billede dennismp Nybegynder
22. august 2004 - 01:14 #11
en af databasens fornemmeste opgaver er at skule den slags tid. De er beregnet til den slags situationer, så du vil aldrig få halve data. Om der bliver oprettet 2 tråde er vel ligemeget, bare du får dataerne som du forventer (ligemeget om 100 andre læser og skriver samtidigt).

Jeg ved ikke om mysql bruger tråde. Har aldrig rigtig interesseret mig for det. Jeg går ud fra at den gør, men jeg tvivler på at den laver een pr. request. Jeg tror den har en pool af tråde som den så fordeler arbejdet ud på. Men det er _rent_ gætværk.
Avatar billede Daniel.E Praktikant
22. august 2004 - 01:20 #12
dennismp giv et svar
Avatar billede dennismp Nybegynder
22. august 2004 - 01:31 #13
Ok. Håber det kan bruges. Held og lykke med projektet.
Avatar billede melange Nybegynder
22. august 2004 - 11:18 #14
vb2: prøv at læse dette spørgsmål: http://www.eksperten.dk/spm/411641
Det burde give dig et indblik i hvilke størrelser du skal op i før databasen begynder at halte :)

Men hvis du er paranoid over at din database hele tiden skal åbens og lukkes kunne du jo tage et kig på: http://dk.php.net/mysql_pconnect
Avatar billede Daniel.E Praktikant
22. august 2004 - 16:29 #15
melange giv også lige et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester