add epoll, add msg type switch