Реализация буферизованного потока преобразования

Я пытаюсь реализовать поток сновый API потоков Node.js это буферизует определенное количество данных. Когда этот поток передается в другой поток, или если что-то потребляетreadable события, этот поток должен очистить свой буфер, а затем просто стать сквозным. Уловка в том, что этот поток будет передан во многие другие потоки, и когда каждый целевой поток присоединен, буфер должен быть очищендаже если он уже сброшен в другой поток.

Например:

BufferStream инвентарьstream.Transformи сохраняет внутренний кольцевой буфер 512 КБReadableStreamA передан в экземплярBufferStreamBufferStream пишет в свой кольцевой буфер, читая данные изReadableStreamA как это входит. (Это неНе имеет значения, если данные потеряны, так как буфер перезаписывает старые данные.)BufferStream по трубопроводуWritableStreamBWritableStreamB получает весь буфер 512 КБ и продолжает получать данные, как они записаныReadableStreamA через .BufferStreamBufferStream по трубопроводуWritableStreamCWritableStreamC также получает весь буфер 512 КБ, но этот буфер теперь отличается от того, чтоWritableStreamB получил, потому что с тех пор было записано больше данных.BufferStream

Возможно ли это с помощью API потоков? Единственный способ, о котором я могу подумать, - это создать объект с методом, который раскручивает новый поток PassThrough для каждого пункта назначения, то есть я не могут просто труба туда и обратно.

Для чего этостоит, ямы сделали это со старымпротекающий» API, просто слушая новые обработчики наdata События. Когда новая функция была прикреплена с.on('data')Я бы назвал это напрямую с копией кольцевого буфера.

Ответы на вопрос(2)

Ваш ответ на вопрос