一部のメソッド名は予約されているか、特別な意味を持ちます。
後方互換のため、WorkerEntrypoint または DurableObject を拡張する場合、次のメソッド名には特別な意味があります。これは RpcTarget には 適用されません。RpcTarget では、これらのメソッドはほかの RPC メソッドと同じように動きます。
fetch() メソッドは特別に扱われます。HTTP リクエストの処理にだけ使え、fetch ハンドラー と同等です。
WorkerEntrypoint を拡張したクラスで fetch() メソッドを実装できます。ただし、受け取るパラメーターは Request ↗ 型の 1 つだけであり、戻り値は Response ↗ のインスタンス、またはその Promise ↗ である必要があります。
クライアント側では、サービスバインディングまたは Durable Object スタブで呼ぶ fetch() は、標準のグローバル fetch() と同じように動きます。つまり、呼び出し側は fetch() に 1 つまたは 2 つのパラメーターを渡せます。呼び出し側が単一の Request オブジェクトだけを渡さない場合、渡したパラメーターで新しい Request が暗黙的に構築され、そのリクエストがサーバーへ送られます。
Request の一部のプロパティは、クライアント側の fetch() の動作を制御し、サーバーへは送られません。たとえば、プロパティ redirect: "auto"(これがデフォルトです)は、サーバーがリダイレクトレスポンスを返した場合に自動で追跡し、パブリックインターネットへの HTTP リクエストになるよう fetch() に指示します。これも Fetch API の標準どおりです。要するに、fetch() は RPC ではなく Fetch API の規則に従います。
WorkerEntrypoint クラスの connect() メソッドは、Worker へのソケットのような接続を開くために予約されています。現在は未実装・未サポートです。ただし、Worker から TCP ソケットを開く ことや、Hyperdrive で TCP ソケット経由でデータベースへ直接接続することはできます。
次のメソッド(またはプロパティ)名は、どの RPC 型(WorkerEntrypoint、DurableObject、RpcTarget を含む)でも RPC メソッドとして使えません。
dup: スタブの複製用に予約されています。dup()の詳細は RPC ライフサイクル を参照してください。constructor: JavaScript クラスで特別な意味を持つ名前です。メソッドとして呼ぶ想定ではないため、RPC 越しでは使えません。
次のメソッドは WorkerEntrypoint と DurableObject でのみ使えず、RpcTarget では使えます。これらのメソッドは、Durable Objects でシステム生成イベントを処理するために、従来から特別な意味を持っています。
alarmwebSocketMessagewebSocketClosewebSocketError