Kontinuerlig laddning från Servlet?

Java

3 svar · 453 visningar · startad av Al

Medlem sedan jan. 200122 inlägg
Trådstart#1

Jag håller på med en realtidsgrej som ska skicka data från en servlet till en browser, och det måste köras över http.

Servleten leverarar små mängder data sporadiskt, och denna data skall visas i browsern direkt.

Http är ju sessionsbaserat, så jag vill att browsern på nåt sätt koninuerligt läsa/ladda från servleten och skicka ut datan som kommer i browsern.

Jag har testat att skicka data till responsens printwriter med lite fördröjningar, men browsern slutar läsa innan nåt skickas. Den väntar inte trots att kopplingen fortfarande är öppen. Datan kommer istället nästa gång jag uppdaterar sidan.

Så, hur fixar man detta med att browsern ska ladda hela tiden från en servlet?

Om nån kunde hjälpa vore det himla schysst.

/Al

Medlem sedan juni 20008 205 inlägg
#2

HTTP och realtidsuppdateringar hör inte ihop, det är den bittra sanningen. När webbläsaren gör en request och har fått svar på den glömmer den din server och din server glömmer den.
Du blir tvungen att göra en applet som uppdateras, eller göra så att sidan uppdaterar sig själv mellan varven.

Medlem sedan sep. 20001 124 inlägg
#3

Man kan ju lösa det såhär om man verkligen vill.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">bool running = true;
...
while (running) {
out.println("Hej! ");
Thread.sleep(1000);
out.println("Och hejdå... ");
Thread.sleep(3000);
}

Medlem sedan jan. 200122 inlägg
#4

Fick det att funka, var ju bara att flush'a ut det (hade testat det, men hade en content-type som gjorde att det inte funkade).

/Al

283 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
138 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
139 ms — ändringar (db)