跳到正文
豫言包管理
← 全部包

豫言操作系统授权服务适配 0.3.0

豫言 · 库

以云工 SERVICE 绑定提供授权服务调用与流式回应读取。

授权服务云工适配

使用当前 Worker Request 和宿主许可中的 SERVICE 绑定。标头逐名过滤,转发正文时保留原始流;返回的原生 Response 只通过私有临时句柄交给豫言应用,业务路由仍由应用决定。

0.3.0 新增带正文请求与增量读取,全部用豫言写在云工宿主库之上,不增加宿主 JavaScript:

  • 请求:正文经字节句柄交给 Request(不经 JSON 转义),标头由 Headers 构造,redirect: manual,中断信号用 AbortSignal.timeout;发请求用服务绑定的 fetch 取得 Promise 句柄后经 云工请求候回应安全 等待,失败与期满成为返回值。
  • 读取状态表:适配在本次事件的 Wasm 实例内保存“响应柄→读取状态”(读取器、解码器、余块、信号、结局、待出文字),事件结束随实例消失。请求授权服务 与 请求授权服务带正文 签发的柄都登记入表;表中没有的柄一律拒绝。
  • 增量读取:首次读取时才创建读取器;有信号则经恒等 TransformStream 的 pipeThrough(…, {signal}) 接管正文流,期满时读取失败且对上游流执行取消;无正文的响应直接进入已读尽。每次读取一段原始字节(上游块过大时用 subarray 留余块),交给宿主的流式 TextDecoder(BOM 去掉,非法序列成 U+FFFD,跨段拼接),再按码点边界切出不超过最大字节的文字,余文留作待出文字。
  • 有限整读:先看 Content-Length,再循环读取累计,超限即取消;结果以文字段拼接。
  • 取消:经读取器(或尚无读取器时经正文流)cancel,幂等。
  • 句柄卫生:每块的字节句柄、请求期的 Headers、Request、正文句柄都及时释放,终态时释放读取器、解码器、信号句柄;同一事件内可连续处理上千次请求。

一致性验证见 一致性验证/(含试验应用、真实 Wasm 加 Node 测试,及在私有暂存里复跑的说明)。已知平台前提:pipeThrough 的 signal 选项与 AbortSignal.timeout 需为宿主运行时所支持(Node 与 workerd 均支持);宿主的事件时限(创建豫言实例 默认 30 秒)短于所给超时时,以先到者为准。

依赖

查看包配置

上传历史

当前上传修订:1 ·

  1. 上传修订 1
    下载 ZIP

包层级

父包:豫言操作系统适配

没有子包。