disconnect 方法为单例模式,使用双重锁保证多线程环境下只执行一次
use Promise/Future simulate a queue to do my best reduce block time.
send heat beat data.
send heat beat data. disconnect socket if not get response 1. send before set heart as false 2. after 1 mins (or other values) check does the value is true