To make 0MQ work with libev, get the file descriptor for each 0MQ socket:
zmq_getsockopt(socket, ZMQ_FD, ¬ify_fd, ¬ify_fd_size)
Then just pass notify_fd to libev, or libevent, or epoll, or whatever event library you prefer. Very pleasant and easy, but not yet officially documented last time I checked.