code: public void sendBinaryAsync(Session session, InputStream inputStream, ExecutorService threadPool) {
          if (session == null) {
              return;
          }
  
          if (inputStream == null) {
              throw new IllegalArgumentException("inputStream must not be null");
          }
  
          log.debugf("Attempting to send async binary data to client [%s]", session.getId());
  
          if (session.isOpen()) {
              if (this.asyncTimeout != null) {
                  // TODO: what to do with timeout?
              }
  
              CopyStreamRunnable runnable = new CopyStreamRunnable(session, inputStream);
              threadPool.execute(runnable);
          }
  
          return;
      }
docs: Sends binary data to a client asynchronously.
  
  @param session the client session where the message will be sent
  @param inputStream the binary data to send
  @param threadPool where the job will be submitted so it can execute asynchronously