code: public <OUT> IPromise serve(Publisher<OUT> source, ActorPublisher networRxPublisher, boolean closeConnectionOnCompleteOrError, Consumer<Actor> disconCB) {
          if ( networRxPublisher.getClass().getSimpleName().equals("HttpPublisher") ) {
              throw new RuntimeException("Http long poll cannot be supported. Use WebSockets instead.");
          }
          if (source instanceof KxPublisherActor == false || source instanceof ActorProxy == false ) {
              Processor<OUT, OUT> proc = newAsyncProcessor(a -> a); // we need a queue before going to network
              source.subscribe(proc);
              source = proc;
          }
          ((KxPublisherActor)source).setCloseOnComplete(closeConnectionOnCompleteOrError);
          return networRxPublisher.facade((Actor) source).publish(disconCB);
      }
docs: exposes a publisher on the network via kontraktor's generic remoting. Usually not called directly (see EventSink+RxPublisher)
  
  @param source
  @param networRxPublisher - the appropriate network publisher (TCP,TCPNIO,WS)
  @param disconCB         - called once a client disconnects/stops. can be null
  @param <OUT>
  @return