webForumDet fria alternativet

ping

2 svar · 196 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Hej!

Vad är ett bra sätt att kontrollera om en klient på web-chatten har "droppat ur" chatten?

Jag vill inte att en klient som egentligen inte finns kvar på chatten, fortfarande listas upp.

Om användaren väljer att avsluta sessionen genom att välja "Avsluta" från en meny så skickar klienten en QUIT-signal till servern som sedan informerar alla andra klienter o mdet...

Deta fungerar finfint men om klienten dör pga av tex att modem-uppkopplingen dör osv? Eller om användaren stänger fönstret? Jag antar att appletten inte hinner registrera denna händelse.

Jag kan ju köra nån slags ping-variant. Dvs att servern skickar ut en förfrågan till varje klient med gämna mellanrum och ser vilka som svarar. Isf hur lång timeout bör man ha? Inte skall servern fråga detta varje sekund. Vad är rimligt? 5 minuters mellanrum?

Jag vill inte köra nåt med System.exec(ping). Dvs jag vill inte blanda in native kod eller program. Allt skall skötas med ren Java.

Annat sätt vore kanske att om servern fångar en IOException när den försöker skicka nåt till klienten, så skall servern tolka detta som att just denna klient inte finns längre. Vågar jag göra det på detta vis?

Kanske finns det en väldigt enkel lösning på detta som jag har missat. Misstänker det iaf...

AGMedlem sedan mars 20001 266 inlägg
LimeMedlem sedan sep. 2001961 inlägg
#3

Om klienten dör så dör också den socket som klienten är uppkopplad mot och det kan man detektera.

/Lime

241 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
238 ms — hämta tråd, inlägg och bilagor (db)