add messagequeue
[fix #1] use messageQueue to buffer the message