sessionOptions.truncatedReads
- 类型:<string>
'error'或'ignore'之一。 - 默认:
'error'
控制读取流时如何报告截断读取。流的读取端可能在没有收到 QUIC FIN 的情况下结束,这意味着对端从未标示整个流已经发送完毕,接收到的数据可能不完整。这个选项决定了流的异步迭代器如何报告这一情况:
🌐 Controls how reading a stream reports a truncated read. A stream's read side can end without receiving a QUIC FIN, meaning the peer never signalled that the whole stream had been sent and the data received may be incomplete. This selects how the stream's async iterator reports this:
'error'- 默认情况下。对等方应该总是发送一个 FIN 来明确结束它们的数据,因此任何截断都是错误的。迭代器会返回已到达的数据,然后抛出异常,所以不完整的流永远不会被误认为是完整的。不完整的流要么会抛出携带对等方错误代码的ERR_QUIC_STREAM_RESET,要么是连接错误,或者在其他情况下抛出ERR_QUIC_STREAM_ABORTED。'ignore'- 截断本身会被忽略:只会报告流或连接错误,任何干净的中止/取消或类似操作只是结束流。非零的对端重置、非零的本地停止发送或连接错误仍然会失败,但完全没有错误的截断(空闲超时、优雅关闭,或者只是stopSending())会干净地结束读取,并包含接收到的数据。这与stream.closed一致,后者只在发生错误时才会拒绝。