/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Opbygning af chat og andre ting
Fra : Jakob Jensen


Dato : 29-10-02 21:35

Hej NG

Jeg har før læst, at nogle synes at man skal burge filer, når man skal
lave en chat. Fordi at en chat ellers vil lave for mange kald og
belaste databasen unødvendigt.

Hvad mener i om det?

Hvis man laver det med filer, hvordan holder man så styr på hvem der
er online. Skal det gøres via session og evt. hvordan (eks.)?

Er der andre ting, som i mener bør laves i filer, sessions eller andre
ting. Såsom online tæller, forum o.s.v.?

Venlig hilsen
Jakob Jensen

Debatkat.dk ....( stedet for katte og deres mennesker )
http://www.debatkat.dk


 
 
Niels Andersen (29-10-2002)
Kommentar
Fra : Niels Andersen


Dato : 29-10-02 22:17

Jakob Jensen wrote in <00stru485to0vupu9qh2hnce144lhsa9ak@4ax.com>:
> Jeg har før læst, at nogle synes at man skal burge filer, når man skal
> lave en chat. Fordi at en chat ellers vil lave for mange kald og
> belaste databasen unødvendigt.

Man kan da godt basere det på filer, og skrive en hulens masse kode til at
omgå de problemer det giver.
Man kan også benytte andres kode. Så får man nemt noget kode der er brugt
millioner(?) af timer på at udvikle. Det hedder en database-manager.

Jeg mener altså at man skal bruge en database-manager (en fil er jo også en
database), især når man skal have fat i databasen ofte.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Martin Mouritzen (29-10-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 29-10-02 23:11

On Tue, 29 Oct 2002 21:35:04 +0100, Jakob Jensen <webmaster@rodsen.dk>
wrote:

>Jeg har før læst, at nogle synes at man skal burge filer, når man skal
>lave en chat. Fordi at en chat ellers vil lave for mange kald og
>belaste databasen unødvendigt.
>
>Hvad mener i om det?

Jeg vil mene at du skal bruge et andet sprog end PHP, og holde det i
hukommelsen. - Det er selvfølgelig ikke så vigtigt hvis du ikke
forventer ret mange besøgende.
Hvis du laver det med filer, så husk at lås filerne mens du skriver
til dem. Ellers kan det hurtigt gå galt.

>Hvis man laver det med filer, hvordan holder man så styr på hvem der
>er online. Skal det gøres via session og evt. hvordan (eks.)?

Du kan jo gemme det i en fil for sig. (Hvem der er online, og et unikt
ID for vedkommende).

>Er der andre ting, som i mener bør laves i filer, sessions eller andre
>ting. Såsom online tæller, forum o.s.v.?

Kommer helt an på belastningen af sitet.

Niels Andersen (30-10-2002)
Kommentar
Fra : Niels Andersen


Dato : 30-10-02 10:44

Martin Mouritzen wrote in <bo1urug8c76m5kna3s7me77e8r4as1j02r@4ax.com>:
> Jeg vil mene at du skal bruge et andet sprog end PHP, og holde det i
> hukommelsen.

Nu er jeg nysgerrig... :)

Hvorfor ikke PHP?

Ikke dermed sagt at jeg ville foretrække PHP frem for alt andet, men hvis
det nu er PHP man kan finde ud af...

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Martin Mouritzen (30-10-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 30-10-02 12:28

On Wed, 30 Oct 2002 10:44:04 +0100, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>> Jeg vil mene at du skal bruge et andet sprog end PHP, og holde det i
>> hukommelsen.
>
>Nu er jeg nysgerrig... :)
>
>Hvorfor ikke PHP?

Fordi jeg ikke mener PHP er egnet til opgaven, hvis vi stadig snakker
om en chat som skal stå og håndtere en hel masse brugere. - Der vil
det efter min mening være mere smart at benytte en decideret
applikation som kører hele tiden, og ikke behøver slå op i
filer/database når den skal bruge information.

>Ikke dermed sagt at jeg ville foretrække PHP frem for alt andet, men hvis
>det nu er PHP man kan finde ud af...

PHP kan selvfølgelig bruges hvis man har et moderat antal besøgende,
eller ikke har adgang til at køre sine egne applikationer på serveren.

Niels Andersen (30-10-2002)
Kommentar
Fra : Niels Andersen


Dato : 30-10-02 19:13

Martin Mouritzen wrote in <h9gvru0lvkruf9qcd6fud439l8uobvaeg3@4ax.com>:
>>> Jeg vil mene at du skal bruge et andet sprog end PHP, og holde det i
>>> hukommelsen.
>>Hvorfor ikke PHP?
> Fordi jeg ikke mener PHP er egnet til opgaven, hvis vi stadig snakker
> om en chat som skal stå og håndtere en hel masse brugere. - Der vil
> det efter min mening være mere smart at benytte en decideret
> applikation som kører hele tiden, og ikke behøver slå op i
> filer/database når den skal bruge information.

Vi kan hurtigt blive enige om, at hvis serveren er voldsomt belastet ville
det være en fordel at skrive en backend i C el. lign.

Men hvis behovet er på det niveau, så vil man næppe spørge sig til råds her.


Jeg mener en PHP-baseret løsning er noget man kan kommer meget langt med, og
der er jo mulighed for både database og "shared memory".

> PHP kan selvfølgelig bruges hvis man har et moderat antal besøgende,
> eller ikke har adgang til at køre sine egne applikationer på serveren.

Så er spørgsmålet bare hvor mange "moderat" er.

Jeg vil gætte på at Jakob (OP) ikke har noget problem i den retning.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Martin Mouritzen (30-10-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 30-10-02 19:45

On Wed, 30 Oct 2002 19:13:19 +0100, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>Vi kan hurtigt blive enige om, at hvis serveren er voldsomt belastet ville
>det være en fordel at skrive en backend i C el. lign.

En webchat giver lynhurtigt voldsom belastning, netop fordi den bliver
refreshet hvert X antal sekund. Derfor kan få besøgende godt
ligepludselig virke som mange

>Men hvis behovet er på det niveau, så vil man næppe spørge sig til råds her.
>

Det er da en kedelig udvikling, hvis man ikke kan stille større
spørgsmål end "hvordan validerer man en email adresse" herinde. - Hvis
der var flere "spændende" spørgsmål, ville jeg f.eks. nok deltage mere
aktivt herinde.

>Jeg mener en PHP-baseret løsning er noget man kan kommer meget langt med, og
>der er jo mulighed for både database og "shared memory".

shared memory virker generelt bare kun på Unix. Men jeg må indrømme at
jeg ikke har leget med det. - Måske er det muligt at få udemærket
performance den vej.

Ang. database ville jeg kun benytte det til at ligge oplysninger som
også skal være tilgengælig efter "chat-serveren" er gået ned (altså
næste gang den startes op)

>Så er spørgsmålet bare hvor mange "moderat" er.

Det afhænger selvfølgelig af mange ting. Men min erfaring er at
tingene begynder at blive sløve hvis man benytter filer når der er
20-30 samtidige brugere logget på en chat. - Fordi filerne bliver låst
og der så skal ventes på at de bliver låst op, osv.

>Jeg vil gætte på at Jakob (OP) ikke har noget problem i den retning.

Der vil jeg nok tro du har ret.
--
Nano Martin Mouritzen Phone +45 24899896
Vestergade 43 Programmer Advanced Simplicty
DK-8000 Århus martin@nano.dk http://www.nano.dk

Niels Andersen (30-10-2002)
Kommentar
Fra : Niels Andersen


Dato : 30-10-02 21:30

Martin Mouritzen wrote in <0n90suctqdfov0qip7vki2qf30qb7afukj@4ax.com>:
>>Vi kan hurtigt blive enige om, at hvis serveren er voldsomt belastet ville
>>det være en fordel at skrive en backend i C el. lign.
> En webchat giver lynhurtigt voldsom belastning, netop fordi den bliver
> refreshet hvert X antal sekund. Derfor kan få besøgende godt
> ligepludselig virke som mange

Der skal nu alligevel være et pænt antal chattere før det gør noget.

På et webhotel med 10.000 sites på én server skal der nok ikke så mange
chat-sites til for at lægge den ned, men der er løsningen i første omgang
"dedikeret server", og ikke "C-backend" el. lign.

I øvrigt er der masser af alternativer til refresh-metoden. De er dog
alle(?) baseret på en fast forbindelse, som til gengæld kræver en masse
ram.

>>Men hvis behovet er på det niveau, så vil man næppe spørge sig til råds
>>her.
> Det er da en kedelig udvikling, hvis man ikke kan stille større
> spørgsmål end "hvordan validerer man en email adresse" herinde. - Hvis
> der var flere "spændende" spørgsmål, ville jeg f.eks. nok deltage mere
> aktivt herinde.

Det kan man selvfølgelig godt, men man gør det ikke. Jeg tror i hvert fald
ikke jeg har set et eneste spørgmål om systemer i "C-backend"-størrelsen,
og jeg har vist læst de fleste indlæg der er postet i denne gruppe, siden
den blev oprettet.

Det har tidligere været diskuteret, at mange af de bedste PHP-udviklere ikke
har lyst til at være her, fordi der er for langt mellem de "interessante"
tråde.
Er man først blevet god til PHP, så kan man næsten ikke bruge denne gruppe
til andet, end at hjælpe de nye.

>>Jeg mener en PHP-baseret løsning er noget man kan kommer meget langt med,
>>og der er jo mulighed for både database og "shared memory".
> shared memory virker generelt bare kun på Unix.

Laver man projekter i den størrelsesorden holder man sig vel til én type
platform. Her mener jeg enten unix/php eller windows/asp.

Det der med at køre PHP på en Windows-server, er det ikke kun noget man
bruger på discount-hoteller?

>>Så er spørgsmålet bare hvor mange "moderat" er.
> Det afhænger selvfølgelig af mange ting. Men min erfaring er at
> tingene begynder at blive sløve hvis man benytter filer når der er
> 20-30 samtidige brugere logget på en chat. - Fordi filerne bliver låst
> og der så skal ventes på at de bliver låst op, osv.

Yeps, det er én af grundene til at jeg ikke vil bruge filer til den slags.
En anden grund er, at det er så hulens besværligt.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Martin Mouritzen (30-10-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 30-10-02 22:17

On Wed, 30 Oct 2002 21:29:48 +0100, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>Der skal nu alligevel være et pænt antal chattere før det gør noget.
>
>På et webhotel med 10.000 sites på én server skal der nok ikke så mange
>chat-sites til for at lægge den ned, men der er løsningen i første omgang
>"dedikeret server", og ikke "C-backend" el. lign.

True, men hvis du har brug for en dedikeret server nu, kan du ligeså
godt lave det ordentligt fra starten af

>I øvrigt er der masser af alternativer til refresh-metoden. De er dog
>alle(?) baseret på en fast forbindelse, som til gengæld kræver en masse
>ram.

Jeg kender kun 2 alternativer til refresh metoden pt. - en Java
Applet, eller en fast forbindelse, hvor man så bruger flush(); (eller
noget lignende) - Det er PHP dog SLET ikke godt til, da der så starter
en PHP fortolker op for hvert eneste request, og der skal så alligevel
deles data på en eller anden måde, da PHP fortolkerne ikke har en måde
nemt at dele data på.

>Det kan man selvfølgelig godt, men man gør det ikke. Jeg tror i hvert fald
>ikke jeg har set et eneste spørgmål om systemer i "C-backend"-størrelsen,
>og jeg har vist læst de fleste indlæg der er postet i denne gruppe, siden
>den blev oprettet.

Det har jeg også, og jeg syntes det er trist.

>Det har tidligere været diskuteret, at mange af de bedste PHP-udviklere ikke
>har lyst til at være her, fordi der er for langt mellem de "interessante"
>tråde.
>Er man først blevet god til PHP, så kan man næsten ikke bruge denne gruppe
>til andet, end at hjælpe de nye.

Præcis.

>Laver man projekter i den størrelsesorden holder man sig vel til én type
>platform. Her mener jeg enten unix/php eller windows/asp.

Måske. IT Chefer er underlige.

>Det der med at køre PHP på en Windows-server, er det ikke kun noget man
>bruger på discount-hoteller?

Jo, eller udviklingsmaskiner

>Yeps, det er én af grundene til at jeg ikke vil bruge filer til den slags.
>En anden grund er, at det er så hulens besværligt.

Besværligt kan du jo altid gå udenom ved at lave deciderede inkapslede
klasser der håndterer alt filsystems snask.
Men jeg ville også anbefale en database ud fra de 2 valg.

Jakob Jensen (30-10-2002)
Kommentar
Fra : Jakob Jensen


Dato : 30-10-02 22:51

I må endelig blive ved, jeg synes det er en meget interessant snak,
som giver en del viden. Det kunne være interessant, men måske også
lidt for stort arbejde for jer, hvis kom nogle forklaringer på
C-backend og lignende.

Hvorfor er flush ikke god nok til, at lave en konstant forbindelse.
Hvorfor skal det være en konstant forbindelse eller java apllets.
Hvilken forskel på systemet giver det?

Det var vidst lige nogle af de spørgsmål, som poppede frem efter, at
have læst jeres snak.

Forøvrigt så har jeg ingen forventninger om, at chatten skal kører i
længer tid med 20 brugere online - men man kan da altid håbe, og så
snuse lidt til, hvad de "lidt" dygtigere ville gøre

Venlig hilsen
Jakob Jensen

Debatkat.dk ....( stedet for katte og deres mennesker )
http://www.debatkat.dk

Martin Mouritzen (31-10-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 31-10-02 00:44

On Wed, 30 Oct 2002 22:50:55 +0100, Jakob Jensen <webmaster@rodsen.dk>
wrote:

>I må endelig blive ved, jeg synes det er en meget interessant snak,
>som giver en del viden. Det kunne være interessant, men måske også
>lidt for stort arbejde for jer, hvis kom nogle forklaringer på
>C-backend og lignende.

C-backend eller lignende kan betegnes som en applikation der står og
lytter på en port (f.eks. port 80, så browserne ikke kan se forskel på
chatten og en normal webserver).

Jeg har f.eks. udviklet en større chatserver i Java. (som I øvrigt
burde gøres open source en af dagene).

>Hvorfor er flush ikke god nok til, at lave en konstant forbindelse.

Hvis vi stadig snakker PHP, så er det som jeg beskrev, fordi der
starter en PHP fortolker op, for hver eneste forbindelse der så
kommer.
Dvs. hvis der er 30 brugere online på chatten, så står der 30 PHP
fortolkere i baggrunden og kører (hvilket ikke kan betegnes som
smart). - Jeg må indrømme at jeg ikke har leget nok med det til at
vide om det kan undgås, men jeg tror det ikke.

>Hvorfor skal det være en konstant forbindelse eller java apllets.
>Hvilken forskel på systemet giver det?

Det giver ikke meget forskel loadmæssigt, hvis du stadig bruger PHP
sammen med filer/database. Fordi PHP stadig skal læse/skrive til
filer/databasen.

Det giver dog en forskel for brugeren, hvis det kører som applikation,
da beskederne kan ryge ud til brugeren "real-time", dvs. når en person
trykker på send, kommer den (næsten) uden forsinkelse op på andre
folks skærme, hvor der ved "normale" web-chats er det delay, som
browseren er sat til at refreshe i.

(dvs. idéen er egentlig at skubbe beskederne ud til klienterne, i
stedet for at de står og poll'er efter dem).

>Det var vidst lige nogle af de spørgsmål, som poppede frem efter, at
>have læst jeres snak.

Du må endelig sige til hvis der er flere. - Jeg må indrømme, at jeg
syntes emnet er spændende

>Forøvrigt så har jeg ingen forventninger om, at chatten skal kører i
>længer tid med 20 brugere online - men man kan da altid håbe, og så
>snuse lidt til, hvad de "lidt" dygtigere ville gøre

Som sagt, vil der sikkert ikke være nogle mærkbare problemer I at køre
det som PHP med enten filer eller database, hvis du ikke forventer
noget større load. (Jeg har i øvrigt en gammel PHP Chat liggende et
sted, hvis du er interesseret. - Den er dog skrevet for en hel del tid
siden, så pæn er koden nok ikke).

Jakob Jensen (31-10-2002)
Kommentar
Fra : Jakob Jensen


Dato : 31-10-02 18:47

On Thu, 31 Oct 2002 00:44:03 +0100, Martin Mouritzen <martin@fez.dk>
wrote:

>On Wed, 30 Oct 2002 22:50:55 +0100, Jakob Jensen <webmaster@rodsen.dk>
>wrote:
>
>>I må endelig blive ved, jeg synes det er en meget interessant snak,
>>som giver en del viden. Det kunne være interessant, men måske også
>>lidt for stort arbejde for jer, hvis kom nogle forklaringer på
>>C-backend og lignende.
>
>C-backend eller lignende kan betegnes som en applikation der står og
>lytter på en port (f.eks. port 80, så browserne ikke kan se forskel på
>chatten og en normal webserver).

Ok - lyder interessant. Jeg tror jeg kender til det fra online spiller
Hattrick (hattrick.org), hvor de bruger en spil motor til, at spille
kampene.

>>Hvorfor er flush ikke god nok til, at lave en konstant forbindelse.
>
>Hvis vi stadig snakker PHP, så er det som jeg beskrev, fordi der
>starter en PHP fortolker op, for hver eneste forbindelse der så
>kommer.
>Dvs. hvis der er 30 brugere online på chatten, så står der 30 PHP
>fortolkere i baggrunden og kører (hvilket ikke kan betegnes som
>smart). - Jeg må indrømme at jeg ikke har leget nok med det til at
>vide om det kan undgås, men jeg tror det ikke.
>
>>Hvorfor skal det være en konstant forbindelse eller java apllets.
>>Hvilken forskel på systemet giver det?
>
>Det giver ikke meget forskel loadmæssigt, hvis du stadig bruger PHP
>sammen med filer/database. Fordi PHP stadig skal læse/skrive til
>filer/databasen.
>
>Det giver dog en forskel for brugeren, hvis det kører som applikation,
>da beskederne kan ryge ud til brugeren "real-time", dvs. når en person
>trykker på send, kommer den (næsten) uden forsinkelse op på andre
>folks skærme, hvor der ved "normale" web-chats er det delay, som
>browseren er sat til at refreshe i.
>
>(dvs. idéen er egentlig at skubbe beskederne ud til klienterne, i
>stedet for at de står og poll'er efter dem).

Hvis man bruger flush, java, c-backend eller lignende, så vil man kun
kunne se de beskeder, som er skrevet efter man har logget ind.
Korrekt?

>>Det var vidst lige nogle af de spørgsmål, som poppede frem efter, at
>>have læst jeres snak.
>
>Du må endelig sige til hvis der er flere. - Jeg må indrømme, at jeg
>syntes emnet er spændende

Det er dejligt at høre - det er altid interessant med en snak, hvor
man får nogle forskellige saglige forslag og hvor man kan lære noget!

>>Forøvrigt så har jeg ingen forventninger om, at chatten skal kører i
>>længer tid med 20 brugere online - men man kan da altid håbe, og så
>>snuse lidt til, hvad de "lidt" dygtigere ville gøre
>
>Som sagt, vil der sikkert ikke være nogle mærkbare problemer I at køre
>det som PHP med enten filer eller database, hvis du ikke forventer
>noget større load. (Jeg har i øvrigt en gammel PHP Chat liggende et
>sted, hvis du er interesseret. - Den er dog skrevet for en hel del tid
>siden, så pæn er koden nok ikke).


Det ville da være interessant, hvis der er lidt beskrivelse med over,
hvad de forskellige koder gør. Jeg har også selv udviklet en mindre
php chat på et tidspunkt, men ville høre om nogle ting, før jeg gik
igang med at udvikle en ny - primært pga. jeg havde læst (på NG'en) at
filer var bedre end database.

Venlig hilsen
Jakob Jensen

Martin Mouritzen (31-10-2002)
Kommentar
Fra : Martin Mouritzen


Dato : 31-10-02 19:21

On Thu, 31 Oct 2002 18:47:00 +0100, Jakob Jensen <webmaster@rodsen.dk>
wrote:

>Hvis man bruger flush, java, c-backend eller lignende, så vil man kun
>kunne se de beskeder, som er skrevet efter man har logget ind.
>Korrekt?

Det er helt op til serveren. Chatserveren kan jo sagtens gemme
beskederne, og så sende de 20 seneste public beskeder til en bruger
der lige logger ind. - Det er der ingen forskel på.

>Det er dejligt at høre - det er altid interessant med en snak, hvor
>man får nogle forskellige saglige forslag og hvor man kan lære noget!

Helt sikkert

>Det ville da være interessant, hvis der er lidt beskrivelse med over,
>hvad de forskellige koder gør. Jeg har også selv udviklet en mindre
>php chat på et tidspunkt, men ville høre om nogle ting, før jeg gik
>igang med at udvikle en ny - primært pga. jeg havde læst (på NG'en) at
>filer var bedre end database.

Hehe, jeg er ikke sikker på at den er dokumenteret videre godt.

Jakob Jensen (31-10-2002)
Kommentar
Fra : Jakob Jensen


Dato : 31-10-02 21:52

On Thu, 31 Oct 2002 19:20:55 +0100, Martin Mouritzen <martin@fez.dk>
wrote:

>On Thu, 31 Oct 2002 18:47:00 +0100, Jakob Jensen <webmaster@rodsen.dk>
>wrote:
>
>>Hvis man bruger flush, java, c-backend eller lignende, så vil man kun
>>kunne se de beskeder, som er skrevet efter man har logget ind.
>>Korrekt?
>
>Det er helt op til serveren. Chatserveren kan jo sagtens gemme
>beskederne, og så sende de 20 seneste public beskeder til en bruger
>der lige logger ind. - Det er der ingen forskel på.
>

Dejligt at vide - jeg skal nok lege lidt med Flush og finde nogle
klogehoveder, som kan fortælle om den skal starte en request hver
gang, der logger ind bruger på systemet eller om det kan omgås.

>>Det er dejligt at høre - det er altid interessant med en snak, hvor
>>man får nogle forskellige saglige forslag og hvor man kan lære noget!
>
>Helt sikkert
>
>>Det ville da være interessant, hvis der er lidt beskrivelse med over,
>>hvad de forskellige koder gør. Jeg har også selv udviklet en mindre
>>php chat på et tidspunkt, men ville høre om nogle ting, før jeg gik
>>igang med at udvikle en ny - primært pga. jeg havde læst (på NG'en) at
>>filer var bedre end database.
>
>Hehe, jeg er ikke sikker på at den er dokumenteret videre godt.

Måske ikke, men det virkede som om, at mange var enige i at det var en
god måde. Forid en database baseret chat ville skabe for mange
forbindelser til databasen.

Venlig hilsen
Jakob Jensen

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste