Будет ли что-то подобное для вас работать?
val queue: java.util.concurrent.BlockingQueue[T] = ... // TODO: choose appropriate BlockingQueue implementation
publisher.subscribe(new Subscriber[T] {
override def onNext(t: T): Unit = { queue.put(t) }
// TODO: implement other Subscriber methods
}
val stream = Stream.continually(queue.take)