'Send a multipart message, optionally also register a new callback for sends.
See zmq.socket.send_multipart for details.'

def send_multipart(self, msg, flags=0, copy=True, track=False, callback=None):

    kwargs = dict(flags=flags, copy=copy, track=track)
    self._send_queue.put((msg, kwargs))
    callback = (callback or self._send_callback)
    if (callback is not None):
        self.on_send(callback)
    else:
        self.on_send((lambda *args: None))
    self._add_io_state(zmq.POLLOUT)
