fix: use zmq.Poller on legacy socket