change ack behaviour as discussion
rename local var
maintain a queue for waiting responses
adjust debugging and emit close event
add pesudo ping/pong
add keepalive