Avatar billede darkside Nybegynder
24. juli 2003 - 11:54 Der er 29 kommentarer og
2 løsninger

Server Push mm

Heysa jeg har sat og overvejet hvad der endeligt skal til for at lave en chat med server push, og så vidt som jeg er kommet frem til skal der en slags server del bagved før det virker, nu er mit spm så hvordan gøres dette bedst og nemmest, min ide var noget i stil med at kode en app i Delphi og lade den stå og tjekke en mysql database for at se om der er kommet ny data, og hvis der er det så skal Delphi programmet "pushe" det frem til eks en HTML side, eller PHP whatever!
Men spm er hvordan gøres det, det med at hente fra mysql har jeg luret, men ikke det sidste..
Kode eksempler, forklaringer mm ønskes ;)

/DS
Avatar billede arne_v Ekspert
24. juli 2003 - 12:03 #1
Det helt grundliggende er.

HTTP protokollen kan kun pull ikke push. Man kan simulere push ved poll
(periodisk pull). Men ægte push kræver en application ude på client og en
socket (det kan gøres med en applet).

Hvis du simulerer push med poll, så er PHP tilstrækkeligt til server side.

Hvis du laver en socket løsning skal du bruge en rigtig server applikation.
Den kunne udmærket laves i Delphi.

Medmindre det er kritisk at chat beskeder ikke går tabt, så tror jeg at
det vil være bedst at nøjes med at holde alle beskeder i memory uden
at gemme dem i en database.
Avatar billede darkside Nybegynder
24. juli 2003 - 12:07 #2
Kan du evt give et kode eks på hvordan man simulerer push med poll ?
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:08 #3
darkside >> Mon ikke bare han mener en standard meta chat? Jeg tror der skulle have stået "pull".
Avatar billede darkside Nybegynder
24. juli 2003 - 12:08 #4
Eller push med poll er vel bare evt en HTML side der står og refresher hvert 5 sec evt, mens der eks er en php script der henter data fra en sql database
Avatar billede arne_v Ekspert
24. juli 2003 - 12:15 #5
Præcis.
Avatar billede arne_v Ekspert
24. juli 2003 - 12:16 #6
poll er periodiskisk pull til at simulere push.
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:18 #7
Oh, der er ligefrem standard udtryk for noget ubrugeligt? Hehe.
Det er ikke så fedt at lægge sin server ned fordi der logger 5 mennesker ind på chatten samtidigt :-)
Avatar billede darkside Nybegynder
24. juli 2003 - 12:18 #8
Hm dvs for at kunne gøre det rigtigt skal jeg har kodet en javaclient, til at lave rigtigt server push med ?
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:26 #9
darkside >> Selvom jeg ikke ved meget om dette, så kan jeg alligevel svare ja.
Pointen er at HTTP ikke er designet til den slags kommunikation, og vedkommende der besøger dit site, er derfor nødt til at have en anden klient end sin browser, der kan modtage informationerne.
Avatar billede darkside Nybegynder
24. juli 2003 - 12:29 #10
Okay så må jeg igang med at prøve at lære java, hvis ikke bare jeg skal holde mig til den chat ting jeg har ! ;)

I må lige smidt er svar hvis i skal ha point ;)
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:32 #11
Jeg synes du skal beholde dem selv. Du besvarede jo nærmest dit eget spørgsmål -i- dit spørgsmål.
De gode nyheder er, at Java vist ikke er vanvittig svært at lære. Især ikke hvis du kan noget php m.m i forvejen. Du kan garanteret også finde nogle tutorials om lige netop dét her på nettet, da det er et meget populært emne.
Avatar billede arne_v Ekspert
24. juli 2003 - 12:32 #12
jakob>

En moderne server bør kunen klare 100-500 requests/sekund lidt afhængig
af hardwaren og hvad de requester.

Med 5 sekunders poll kan det understøtte 500+ klienter.

Så jeg forstår ikke helt din betragtning.

Vi kan er enige om at poll ikke er nogen optimal teknisk løsning.

Men der kan være meget gode grunde til at holde sig til standard
HTTP requests fra client bl.a. hvis det skal virke bag en firewall.
Avatar billede arne_v Ekspert
24. juli 2003 - 12:34 #13
darkside>

Ægte push kræver sockets.

Det kan laves på mange måder.

Bl.a. kan du jo lave en client applikation i Delphi også.

Men mange mennesker hader at installere den slags programmer og det
gode ved en java applet er at den køtres i browseren og downloades
automatisk hver gang den skal bruges, så brugerne skal ikke installere noget
og de har altid nyeste version.

Derfor tror jeg at en java applet op mod en server applikation (f.eks.
skrevet i Delphi) er en god løsning.
Avatar billede arne_v Ekspert
24. juli 2003 - 12:34 #14
svar
Avatar billede darkside Nybegynder
24. juli 2003 - 12:37 #15
Hm det er godt nok ikke den helt rigtige kategori det her, men hvis der er nogen der kan finde tuts om java der beskriver hvordan det evt kan gøres, så falder der point af ;)

Selve server delen er ikke det store problem, det er at få java til at forbinde til mysql og trække nogen data ud og evt via sockets eller andet holde kontakt med delphi serveren.
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:40 #16
arne_v >> Jeg er udmærket godt klar over at det ikke kommer til at lugte brændt fordi du laver en HTTP chat. Men hvis du ligger på et normalt, billigt webhotel, kan det godt være din udbyder brokker sig, hvis der er mere end et par online. Hvis du hoster hjemmefra med 512kb upload kan det også godt være din båndbredde brokker sig lidt.
Jeg går ud fra darkside har adgang til egen server, ellers ville han jo have problemer med at installere sit software, og i det tilfælde har han vel også adgang til sin firewall, hvor han bare kan åbne en port.
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:42 #17
Avatar billede darkside Nybegynder
24. juli 2003 - 12:45 #18
Okay java ser faktisk ret simpelt ud, nogen der så kan anbefale et godt program til at kode i, helst ikke notepad eller noget i den stil, gerne noget med en IDE
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:46 #19
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 12:47 #20
Der står også lidt om programmer etc. Som de selv skriver er det ikke helt up-to-date, men skulle alligevel kunne bruges.
Avatar billede athlon-pascal Juniormester
24. juli 2003 - 12:55 #21
Har borland ikke lavet noget JBuilder-ting?
Avatar billede arne_v Ekspert
24. juli 2003 - 12:55 #22
Gratis Java IDE'er:

Eclipse - http://www.eclipse.org/

NetBeans - http://www.netbeans.org/

Personligt foretrækker jeg Eclipse men smag og behag er forskelligt.

Eclipse har ingen GUI builder.

NetBeans har en one-way GUI builder.
Avatar billede arne_v Ekspert
24. juli 2003 - 12:56 #23
Der er en JBuilder Personal Edition (http://www.borland.com/), men
jeg mener at der er lidt restriktioner på anvendelsen.
Avatar billede arne_v Ekspert
24. juli 2003 - 12:57 #24
Avatar billede darkside Nybegynder
24. juli 2003 - 12:58 #25
Sad faktisk lige og lurede på jbuilder, den er vel god nok til en start, hvis det er det samme som delphi må man bare ikke sælge det man laver i den! ;)

Det skal alligevel kun bruges til privat brug
Avatar billede arne_v Ekspert
24. juli 2003 - 12:58 #26
Eller hvis man foretrækker dansk:
  http://javabog.dk/
Avatar billede arne_v Ekspert
24. juli 2003 - 13:04 #27
Hvis det er ok med Personal Edition's licens, så kan du hente på:
  http://www.borland.com/products/downloads/download_jbuilder.html
Avatar billede arne_v Ekspert
24. juli 2003 - 13:06 #28
jakob>

512 Kbit svarer til 40 requests i sekundet og det er stadigvæk 200 samtidige
brugere (med poll tid på 5 sekunder).

Og det er ikke hans firewall jeg snakker om mens brugernes firewall.
Avatar billede jakobsynder Nybegynder
24. juli 2003 - 14:34 #29
arne_v >>

Firewall: Delvist Touché! Mange brugere har slet ikke en firewall, mange brugere har en personlig firewall der automatisk spørger dem om de vil tillade den connection, men du har helt ret i at det -kan- være et problem.

512 Kbit: Jeg ved ikke præcis hvor mange requests det svarer til, eller hvor meget data du regner med der skal overføres, men jeg ved at medmindre han udelukkende har en chat, så er det jo ikke det eneste der sluger båndbredde.

Jeg var egentlig heller ikke ude på at starte en større diskussion med dig om fordele og ulemper ved dit og ved dat. Min oprindelige udtalelse, som du i første omgang reagerede på, var ment delvis ironisk.
Jeg er overbevist om, at du er langt mere inde i de tekniske detaljer end jeg er, men vi skal også huske at den egentlige ydeevne sjældent lever op til de teoretiske beregninger.

darkside >> Hvis du endelig vil af med dine points, så skal jeg da gerne aftage et par stykker af dem, så jeg lægger dette som et svar :-)
Avatar billede arne_v Ekspert
31. juli 2003 - 08:11 #30
darkside>

Er du kommet videre ?
Avatar billede darkside Nybegynder
31. juli 2003 - 13:13 #31
Ikke meget...forsøger at lure java, det er bare ikke helt nemt ;)
Men tak for hjælpen, lukker det her spm så i kan få jeres velfortjente point
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
Kurser inden for grundlæggende programmering

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