Feat add keepalive