use on.Message instead of websocket