move heartbeat packets to a global go routine, and send empty string rather then heartbeat message