「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- RPCを実現するためにGoogleが開発したプロトコルの1つ。
- 一般的な利用シナリオ
マイクロサービス型のアーキテクチャにおけるバックエンドサービスへの接続
詳細 †
前提 †
HTTP/2をトランスポートとして利用する。
機能 †
認証 †
以下を参考にすると、WebAPIの一般的な認証機構を流用する模様。
4 種類の通信方式 †
- Unary 通信
通常の関数コールのように扱える、
1 リクエスト / 1 レスポンス型の通信方法
- Server Streaming 通信
- クライアントが 1 度リクエストを送信し、
サーバから複数回数のレスポンスを返す。
- プッシュ型の実装に利用できる。
- Client Streaming 通信
クライアントから複数回数のリクエストを送信し、
それらを読み込んだサーバから 1 度のレスポンスを待つ。
- Duplex Streaming 通信
双方向ストリーミングの通信方式(TCP/IPの生実装のような)
ブロッキングとノンブロッキング †
取り消しとタイムアウト †
バインディングなど、WCFと似ている所がある。
ただ、上記を見ると、MSもgRPC推しであるもよう
(.NET CoreのWCFはマイグレ・パスの1つと思われる)。
参考 †
- gRPC / MagicOnion? 入門 - xin9le.net
https://blog.xin9le.net/entry/grpc-magiconion-intro
- 概要
- 4 種類の通信方式
- プロジェクト構造と実装の前準備
- Unary 通信
- Server Streaming 通信
- Client Streaming 通信
- Duplex Streaming 通信
- 独自型を送受信する
- 明示的にステータスコードを返す
- ヘッダーの利用
- 通信可能なデータ量を変更する
- ログを出力する
- 送受信されているデータを可視化する
- 接続ユーザーを特定する
- Unary 通信中にプッシュ配信
- 複数ユーザーへのプッシュ配信
- 切断検知と自動再接続
Qiita †
Tags: :.NET開発, :通信技術, :.NET Standard, :.NET Core, :ASP.NET, :ASP.NET Web API