Sometimes network connections are lost without you noticing. This is especially true with Jabber, as it is quite reasonable to keep the connection open for a long time without either sending or receiving any data.
On the other hand, the server may want to do the same kind of detection, and may expect the client to send something at regular intervals.
If you want to detect a lost connection earlier, or make sure that the server doesn't drop your connection, you can use the keepalive functions. These come in two flavours: whitespace pings and XMPP pings.
A whitespace ping is a single space character sent to the server. This is often enough to make NAT devices consider the connection “alive”, and likewise for certain Jabber servers, e.g. Openfire. It may also make the OS detect a lost connection faster—a TCP connection on which no data is sent or received is indistinguishable from a lost connection.
Type M-x jabber-whitespace-ping-start to start it, and M-x
jabber-whitespace-ping-stop to stop it. The former is in
jabber-post-connect-hooks by default; see Hooks.
The frequency of whitespace pings is controlled by the variable
jabber-whitespace-ping-interval. The default value is once every
These functions work by sending a ping request to your server once in a while (by default every ten minutes), and considering the connection lost if the server doesn't answer within reasonable time (by default 20 seconds).
Type M-x jabber-keepalive-start to start
it, and M-x jabber-keepalive-stop to stop it. You may want to add
You can customize the interval and the timeout with the variables