.NET 開源專案 StreamJsonRpc 介紹
阿新 • • 發佈:2020-07-04
StreamJsonRpc 是一個實現了 JSON-RPC 通訊協議的開源 .NET 庫,在介紹 StreamJsonRpc 之前,我們先來了解一下 JSON-RPC。 ## JSON-RPC 介紹 JSON-RPC 是一個無狀態且輕量級的遠端過程呼叫(RPC)協議,其使用 JSON(RFC 4627)作為資料格式。 目前 JSON-RPC 的版本已發展到 2.0,JSON-RPC 2.0 與 1.0 的約定規範是不一樣的。2.0 包含一個名為 `jsonrpc` 且值為 `2.0` 的成員,而 1.0 版本是不包含的。所以我們可以很容易在兩個版本間區分出 2.0。 JSON-RPC 在客戶端與服務端之間交換的所有成員名應是區分大小寫的,函式、方法、過程都認為是可互換的。客戶端被定義為請求物件的來源及響應物件的處理程式;服務端被定義為響應物件的起源和請求物件的處理程式。 ### 請求物件 傳送一個請求物件至服務端代表一個 RPC 呼叫,JSON-RPC 2.0 規定一個請求物件包含下列成員: - jsonrpc:指定 JSON-RPC 協議版本的字串,必須準確寫為“2.0”。 - method:包含所要呼叫方法名稱的字串,以 rpc 開頭的方法名,用英文句號連線的為預留給 rpc 內部的方法名及副檔名,且不能在其他地方使用。 - params:呼叫方法所需要的結構化引數值,該成員引數可以被省略。 - id:已建立客戶端的唯一標識,值必須包含一個字串、數值或 NULL 空值。如果不包含該成員則被認定為是一個通知。該值一般不為 NULL,若為數值則不應該包含小數。 沒有包含 `id` 成員的請求物件為通知,作為通知的請求物件表明客戶端對服務端響應不感興趣,服務端可以不響應請求物件給客戶端。 下面是幾個請求物件的 JSON 結構示例(“-->