code: def send_last_message(self, message_type, data,
                            connection_id, callback=None, one_way=False):
          
          if connection_id not in self._connections:
              raise ValueError("Unknown connection id: {}".format(connection_id))
          connection_info = self._connections.get(connection_id)
          if connection_info.connection_type == \
                  ConnectionType.ZMQ_IDENTITY:
              message = validator_pb2.Message(
                  correlation_id=_generate_id(),
                  content=data,
                  message_type=message_type)
  
              fut = future.Future(message.correlation_id, message.content,
                                  callback, timeout=self._connection_timeout)
  
              if not one_way:
                  self._futures.put(fut)
  
              self._send_receive_thread.send_last_message(
                  msg=message,
                  connection_id=connection_id)
              return fut
  
          del self._connections[connection_id]
          return connection_info.connection.send_last_message(
              message_type,
              data,
              callback=callback)
docs: Send a message of message_type and close the connection.
          :param connection_id: the identity for the connection to send to
          :param message_type: validator_pb2.Message.* enum value
          :param data: bytes serialized protobuf
          :return: future.Future