I have a small java client that logs me into google talk. if i kill my client (control c) my friend (another computer that has google talk running with me on his buddy list) sees me as not available which is correct. However if i just remove the internet connection to my machine, my friend still sees me as available and even on sending a message hes not warned that Im no longer connected.
According to another post in this forum I understood that the server will show you as unavailable if something unexpected happens to the client. I would like to understand how to handle the situation where i yank out the internet connection and my friend is not notified.
Hm, it seems to me to be a Server (Google) problem to determine if user is still online. I mean if you connect to GoogleTalk directly and not through other server with s2s.
The only way a server can tell if a client is still connected or not for that matter is if the socket is terminated “normally”. Hitting control+c and thus shutting down the jvm running your process causes all sockets open by the process to be closed but if you shut off your internet connection aburbtly the socket does not have time to close properly.
I tried the same tests with actual google talk clients and found that they have the same behavior. So I guess Im not going to worry too much about this.