code: public void pushNDArrayMessage(NDArrayMessage message) {
          //start a subscriber that can send us ndarrays
          if (subscriber == null) {
              running = new AtomicBoolean(true);
              subscriber = AeronNDArraySubscriber.startSubscriber(aeron, subscriberHost, subscriberPort, this,
                              subscriberStream, running);
              log.debug("Started parameter server client on " + subscriber.connectionUrl());
          }
  
          String[] split = ndarraySendUrl.split(":");
          int port = Integer.parseInt(split[1]);
          int streamToPublish = Integer.parseInt(split[2]);
          String channel = AeronUtil.aeronChannel(split[0], port);
          log.debug("Parameter server client publishing to " + ndarraySendUrl);
          try (AeronNDArrayPublisher publisher = AeronNDArrayPublisher.builder().streamId(streamToPublish)
                          .compress(isCompressArray()).aeron(aeron).channel(channel).build()) {
              publisher.publish(message);
          } catch (Exception e) {
              throw new RuntimeException(e);
          }
  
      }
docs: Push an ndarray message to the specified
  ndarray send url in the form of:
  host;port:stream
  where stream is the stream for connecting
  to a listening aeron server
  @param message the array to send