Under some networking circumstances a Realtime server may not immediately be aware of dropped connections. Firewalls and other active network devices are sometimes responsible for this, as they can start dropping TCP packets for traffic shaping and other "mysterious" reasons.
Enabling the client heartbeats minimizes these problems, since the server will easily become aware any dropped connections under those circumstances as soon as it stops receiving the periodic heartbeats.
To adjust to your specific use case, Realtime allows you to define the heartbeat period and the maximum amount of fails considered "normal".
You can learn more about setting the client heartbeats at http://messaging-public.realtime.co/documentation/starting-guide/presence.html