Реализация socket.io (при использовании webSockets) отправляет регулярные (каждые несколько секунд) пакеты сердцебиения и ответа, чтобы постоянно проверять, что соединение живо и хорошо. Это нормально.
Keepalive вообще должен внутри вебсокет соединения идти по идее, а это больше похоже на ожидание серверных сообщений при использовании transport=polling вместо вебсокетов.