[JDEV] Dialup and laptop users, lost packets, and faulty presence info

Nathan Sharp nsharp at phoenix-int.com
Thu May 16 16:37:32 CDT 2002


David,
  I had originally thought that, but was having difficulty parsing 
through the jabberd code, plus I figured an external component would be 
a configurable tool that I could publish back somewhere, if it worked. 
 Regardless, your message gave me inspiration to parse through more code 
and once I found the right place - pthsock/client.c - it was incredibly 
easy to add just that in.  I've added it in as a configurable option and 
am pretty sure that with just a little more work I can even have it skip 
heartbeats when there has been recent activity on the socket (saving 
bandwidth and resources).  Once I have a chance to set up a test server 
and run it for a while to prove the point, I'll submit a patch back here.  
  So the questions become:
1) How different is the 1.5 code?  (don't answer that, I can take a look 
later myself )
2) What does it take to get my patch into the main distribution?

  Anyhow, thanks for the thoughts!  
   Nathan (aka tinman on jdev at conference.jabber.org)

David Waite wrote:

> I would recommend a heartbeat which instead does what clients have 
> done for a while - sends a whitespace character in-between XML 
> packets. You would need to modify the client connection piece to do 
> this (c2s/jadc2s/jpoll/dpsm/whatever); but it would be significantly 
> less intrusive to a client than a separate component sending new XML 
> elements. Rather than having the clients reply to this message, their 
> TCP/IP stack will just ACK the new packet. Failure will result in the 
> stack of the server recognising the socket as dead, which will be 
> treated just like a (clean) disconnect is now.
>
> -David Waite
>





More information about the JDev mailing list