Avatar billede tigtak Nybegynder
11. april 2002 - 13:00 Der er 5 kommentarer og
2 løsninger

Servlets

Kan man i doPost metoden kun svare tilbage til en klient, eller der det muligt at svare flere klienter ?

Problem. Har et array på serveren der ofte bliver opdateret af én klient, hvorefter de andre klienter skal havde det nye opdaterede array.
Avatar billede carstenknudsen Nybegynder
11. april 2002 - 13:12 #1
Hvis du har en liste eller hashmap med
sessionsobjekter eller hvordan du nu
har håndtag i de aktive klienter kan du
godt opdatere deres objekter, men om
du kan tvinge dem til at få reloaded
"deres" sider ved jeg ikke. Er det det
du har brug for?
Avatar billede disky Nybegynder
11. april 2002 - 13:20 #2
Det er ikke muligt fra en server at tvinge en client til at opdatere.

Du kan lave noget lignende hvis der på clienten kører en applet som via en URL forbindelse til serveren får besked på at refreshe siden.
Avatar billede tigtak Nybegynder
11. april 2002 - 13:48 #3
Det er en J2ME klient. Men hvordan hvordan "poster" jeg til min klienter (repræsenteret i form af sessionobj.) uden at det har lavet et request
Avatar billede disky Nybegynder
11. april 2002 - 13:51 #4
Det kan du ikke.

Det kræves at clienten har oprettet en forbindelse til serveren først. Når denne forbindelse forefindes, kan serveren sende uopfordrede messages til clienten, som den så kan reagere på.
Avatar billede jkrag Nybegynder
11. april 2002 - 13:51 #5
Du kan ikke i serverkoden svare flere klienter.
Hele http miljøet er netop baseret på at det er såkaldt "pull" dvs. at det er klienterne der forespørger igennem et request, og så for svar på spørgsmålet. Hver klient laver sit eget request til serveren.
Det du muligvis ønsker, er så bare at sørge for at det genererede array bliver husket og delt mellem de forskellige klienter.
Den simple måde at gøre dette kunne være at gemme arayet i en statisk variabel i din servlet. Så er der nemlig kun den samme instans som altid vil blive tilgået. Den vil således kun forsvinde hvis din servlet bliver nedlagt, og hvornår den gør det afhænger meget af opsætning på din servlet-container.
Men jeg går ud fra at du alligeve gemmer de nødvendige data i f.eks. en database (med mindre der er tale om "flygtige" data der ikke behøver at overleve.)
Jeg håber det her er forståeligt og at jeg har forstået dit spørgsmål korrekt.
Avatar billede tigtak Nybegynder
11. april 2002 - 13:55 #6
jkrag>> dvs at klienten hel tiden skal stå og spørge (busy wait), om arrayet er opdatere, og så får et svar (er / er ikke)
Avatar billede jkrag Nybegynder
11. april 2002 - 14:43 #7
Hvis vi snakker en alm. webclient op mod en almindelig servlet, så er svaret grundlæggende ja (hvis du har brug for løbende opdatering).
Jeg har hørt om løsninger der har fusket en smule ved disse premisser ved at udnytte at visse servere kan sende deres output lidt ad gangen uden at angive på forhånd hvor lang "siden" er. Dvs. at klienten bliver ved med at vente på mere data indtil den får en end-of-page el. lign.
Men det er vist noget snavs:-)
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