日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

gRPC in ASP.NET Core 3.x - gRPC 消息定义

發(fā)布時間:2023/12/4 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gRPC in ASP.NET Core 3.x - gRPC 消息定义 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前寫了幾篇關于 Protoco Buffer 的文章。

gRPC in ASP.NET Core 3.x - gRPC 簡介(1)

gRPC in ASP.NET Core 3.x - gRPC 簡介(2)

當gRPC使用Protocol Buffer作為傳輸協(xié)議的時候,Protocol Buffer里所有的規(guī)則仍然都適用。但是在gRPC使用Protocol Buffer的時候,會添加一些額外的規(guī)則和語法,以便讓gRPC能和它完美配合。

?

首先就是service關鍵字,它用來定義一個gPRC service:

?

在service里面,可以定義rpc調(diào)用,也就是client想讓server做的事情。

  • 這里面就定義了一個rpc調(diào)用,名字叫GetByName。

  • 在調(diào)用里,我們還需要發(fā)送一個Request(請求消息),Request必須是消息類型, ? ? 不可以發(fā)送整型,bool等原始類型,更不可以是void。

  • 同樣的,Response(響應消息)也是 ? ? 消息類型,也不可以使用整型,bool,void等等。

如果請求或響應沒有任何東西,那么就使用空的消息類型,但是必須帶有消息。

?

一旦service定義好之后,我們就使用帶有這個service的Protocol Buffer消息定義所在的文檔,調(diào)用Protoc編譯器來對它進行編譯,編譯后:

  • 首先會生成一個client的stub(樁),也就是為client生成的用于來server交互的代碼。我們只需要調(diào)用這個生成的client即可,其它的一些諸如序列化、反序列化的細節(jié)都不用我們操心。

  • 然后也會生成server ? ? interface,server這部分分為兩塊:

    • 一部分是消息接口的定義,這些接口我們需要去實現(xiàn)。例如C#,就會生成IEmployeeService之類的接口。

    • 另外一部分就是負責序列化、反序列化等工作的代碼。

?

一個service定義的例子

service Employee?{rpc GetByName (Request) returns (Response)rpc GetAll (Request) returns (stream Response)rpc UploadFile (stream Request) returns (Response)rpc Save(stream Request) returns (stream Response) }

?

總結

以上是生活随笔為你收集整理的gRPC in ASP.NET Core 3.x - gRPC 消息定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。