[WIP] Keep-Alive


- [ ] api doc
- [ ] naming for event listener, and protected method.
- [ ] move getCurrentTime function to common module