channel improvement (onMessage event)