optimize, using goroutine to push msg