coroutine with socket hook, write simple and run async