接口参考lexmount:remote
host.http
在客户端监听 HTTP 请求,并在云端运行时处理请求。
HTTP 服务接口在所选客户端监听请求,由云端 JavaScript 处理函数生成响应,并按需传输请求和响应正文。
下文的 host 是已选择的 RemoteHost,获取方式见主机发现。权限与通用错误见模块概览。
host.http.serve(options)
功能: 在客户端监听明文 HTTP/1.1,将请求交给云端处理函数;双向正文按需流式传输。需要 http_server.enabled。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
options | HttpServerOptions | 是 | 服务配置 |
options.hostname | string | 否 | 默认 127.0.0.1 |
options.port | number | 否 | 默认 8080;0~65535 的整数,0 自动分配 |
options.fetch | (request: Request) => Response | Promise<Response> | 是 | 在云端执行的处理函数 |
返回值: Promise<HttpServer>。处理函数接收原始请求方法,包括 TRACE / TRACK;request.signal 报告客户端连接断开。处理函数抛错或拒绝时响应 HTTP 500。
此接口不产生公开任务 URL;对外发布使用默认导出 HTTP 入口。
HttpServer
| 属性 / 方法 | 功能与参数 | 类型 / 返回值 |
|---|---|---|
server.addr | 实际监听地址,只读 | Readonly<TcpAddress> |
server.finished | 监听器、已接收请求与响应正文全部结束后完成;传输或清理失败时拒绝 | Promise<void> |
server.shutdown() | 无参数,停止接入并等待已有响应结束,可重复调用 | Promise<void> |
地址对象包含 hostname: string 和 port: number,与 TCP 地址 相同。
不要在正在处理的请求内等待自身服务的 shutdown(),否则会等待自己完成。shutdown() 与 finished 报告同一个首个传输或清理错误。
类型声明见 remote.d.ts。
