add keep.alive support