Add: message socket, support message-level async recv/send