<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rpc on BenzHub</title><link>https://benzhub.github.io/tags/rpc/</link><description>Recent content in Rpc on BenzHub</description><generator>Hugo</generator><language>zh-TW</language><lastBuildDate>Thu, 27 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/tags/rpc/index.xml" rel="self" type="application/rss+xml"/><item><title>DO RPC 與跨物件呼叫:型別安全取代 fetch 手動路由 | Cloudflare 完整教學</title><link>https://benzhub.github.io/post/cloudflare/027-do-rpc/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/cloudflare/027-do-rpc/</guid><description>&lt;blockquote&gt;
&lt;p&gt;上一篇《&lt;strong&gt;DO WebSocket Hibernation&lt;/strong&gt;》,我們讓 &lt;strong&gt;Durable Object&lt;/strong&gt; 能扛住成千上萬條長連線又不燒錢。這一篇,我們處理系統長大後的下一個問題:當 &lt;strong&gt;DO&lt;/strong&gt; 越來越多,它們之間、以及 &lt;strong&gt;Worker&lt;/strong&gt; 與 &lt;strong&gt;DO&lt;/strong&gt; 之間,該如何「互相呼叫、協調」?答案是 &lt;strong&gt;RPC(Remote Procedure Call,遠端程序呼叫)&lt;/strong&gt;。只要你的類別 &lt;code&gt;extends DurableObject&lt;/code&gt;,就能在上面定義 &lt;strong&gt;public 方法&lt;/strong&gt;,呼叫端拿到 &lt;strong&gt;stub&lt;/strong&gt; 後就像呼叫本地函式一樣 &lt;code&gt;await stub.method(args)&lt;/code&gt;,享有完整 &lt;strong&gt;TypeScript&lt;/strong&gt; 型別推斷——徹底取代過去用 &lt;code&gt;fetch&lt;/code&gt; 手動拼 URL、手動解析的繁瑣路由。你會學到 RPC 的型別安全、&lt;code&gt;structured clone&lt;/code&gt; 序列化規則、&lt;code&gt;RpcTarget&lt;/code&gt;、以及用 &lt;code&gt;WorkerEntrypoint&lt;/code&gt; 做 &lt;strong&gt;Service Bindings&lt;/strong&gt; 的 Worker↔Worker RPC。&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>