授权服务云工适配
依当前 Worker Request 与宿主 SERVICE 许可。白头逐名核之,正文若转则守原流;原生 Response 惟以暂柄授豫言应用,业务之径仍由应用定。
〇点三增带正文之请与渐读,悉以豫言书于云工宿主库之上,不增宿主 JavaScript:
- 请:正文以字节柄授
Request(不经 JSON 转义),头以Headers造,redirect: manual,中断之信号用AbortSignal.timeout;发请用服务绑定之fetch,得 Promise 柄而经云工请求候回应安全候之,败与期满皆成返值。 - 读势之表:适配于本事 Wasm 实例内存“答柄→读势”(读器、解码器、余块、信号、结局、待出之文),事毕随实例而消。
请求授权服务与请求授权服务带正文所发之柄皆入表;表中所无之柄一概拒之。 - 渐读:初读乃创读器;有信号则经恒等
TransformStream之pipeThrough(…, {signal})接管正文流,期满则读败而对上游流行 cancel;无正文之答径入已读尽。每读一段原字节(上游块过大则以subarray留余块),授宿主流式TextDecoder(去 BOM,坏序为 U+FFFD,跨段相衔),复依码点之界裁出不逾最大字节之文,余文留为待出之文。 - 有限整读:先观
Content-Length,乃循环读而累计,逾限即止;果以文段拼之。 - 止:经读器(无读器时经正文流)
cancel,幂等。 - 句柄之洁:每块之字节柄、请时之
Headers、Request、正文柄皆及时释之,终态则释读器、解码器、信号之柄;同一事内可连处千余次请。
一致之验见 一致性验证/(含试验应用、真 Wasm 加 Node 测试,及于私有暂存复行之说明)。已知平台之前提:pipeThrough 之 signal 选项与 AbortSignal.timeout 须为宿主运行时所支(Node 与 workerd 皆支);宿主之事限(创建豫言实例 默认三十秒)短于所给时限者,以先至者为准。