'message' event follow node api
add incomplete test