某些方法名被保留或具有特殊语义。
为向后兼容,在扩展 WorkerEntrypoint 或 DurableObject 时,以下方法名具有特殊语义。请注意,这不适用于 RpcTarget。在 RpcTarget 上,这些方法与其他 RPC 方法一样工作。
fetch() 方法被特殊处理——它只能用于处理 HTTP 请求——等同于 fetch 处理程序。
你可以在继承 WorkerEntrypoint 的类中实现 fetch() 方法——但它必须只接受一个 Request ↗ 类型的参数,并且必须返回 Response ↗ 实例,或其 Promise ↗。
在客户端,对服务绑定或 Durable Object stub 调用 fetch() 的行为与标准全局 fetch() 相同。也就是说,调用方可以向 fetch() 传递一个或两个参数。如果调用方不是简单地传递单个 Request 对象,则会隐式构造新的 Request,将参数传递给其构造函数,该请求才是实际发送到服务端的内容。
Request 的某些属性控制客户端 fetch() 的行为,实际上不会发送到服务端。例如,属性 redirect: "auto"(默认值)指示 fetch():如果服务端返回重定向响应,应自动跟随,从而向公共互联网发起 HTTP 请求。同样,此行为遵循 Fetch API 标准。简而言之,fetch() 不具有 RPC 语义,而是具有 Fetch API 语义。
WorkerEntrypoint 类的 connect() 方法保留用于打开到 Worker 的类 socket 连接。目前尚未实现或不支持——不过你可以从 Worker 打开 TCP socket,或通过 Hyperdrive 使用 TCP socket 直接连接数据库。
以下方法(或属性)名不能在任何 RPC 类型(包括 WorkerEntrypoint、DurableObject 和 RpcTarget)上用作 RPC 方法:
dup:保留用于复制 stub。请参阅 RPC 生命周期文档,了解dup()的更多信息。constructor:此名称对 JavaScript 类具有特殊含义。它并非设计为作为方法调用,因此不允许通过 RPC 使用。
以下方法仅在 WorkerEntrypoint 和 DurableObject 上被禁止,但在 RpcTarget 上允许。这些方法在 Durable Objects 历史上具有特殊含义,用于处理某些系统生成的事件。
alarmwebSocketMessagewebSocketClosewebSocketError