#author("2025-01-08T10:19:02+00:00","default:iseki","iseki")
#author("2025-01-08T11:02:55+00:00","default:iseki","iseki")
* gRPC
- Google製 RPC (HTTP/2を使用)
- 異なる言語間でも簡単に使用可能
*** 参考サイト
- https://qiita.com/gold-kou/items/a1cc2be6045723e242eb
- https://grpc.io/
*** 構成
**** RPC
- 言わずと知れた RPC (データはバイナリ)
**** Protocol Buffers
- 言語に依存しない RPC用データフォーマット
- proto ファイルに,データと通信情報等を記述する.
**** HTTP/2

*** 通信方法
- 1リクエスト,1レスポンス  (Unary RPC)
- 1リクエスト,多レスポンス (Server streaming RPC)
- 多リクエスト,1レスポンス (Client streaming RPC)
- 多リクエスト,多レスポンス(Bidirectional streaming RPC)

** 実装
*** .NET (C#)
- grpc-dotne (HTTP/2 by .NET)
-- Unity では HTTP/2 by .NET のサポートなし
*** Unity
- Unity の Package Manager (UnityPM) では未対応
**** YetAnotherHttpHandler
- Unity用のHTTP/2(gRPC) Client
- https://github.com/Cysharp/YetAnotherHttpHandler
- Unity 2022 以降では既にインストール済み?
**** [[NuGetForUnity]] (Unity のパッケージをソースで管理)
- [[NuGet]] を使用
- https://github.com/GlitchEnzo/NuGetForUnity

- パッケージのインストール
-- gRPC, Protobuf 関連をインストール 
-- MQTT 関連をインストール(必要なら)

*** Linux (Rocky Linux)
<pre>
dnf config-manager --set-enabled crb     # CRBリポジトリの有効化
dnf install grpc grpc-*
dnf install protobuf-*
</pre>
**** Rust
<pre>
dnf install dotnet-*
dnf install cargo
</pre>

**** Compile
<pre>
  yum install  cargo
  yum install  grpc
  yum install  grpc-*
 
  yum  protobuf-*
  yum install dotnet-*
 
  dnf config-manager --set-enabled crb
  yum install protobuf-compiler

cmake -G "Unix Makefiles" \
  -DCMAKE_CXX_FLAGS="-I/opt/GIT/llvm-project/libcxx/include -I/usr/local/include" \
  -DCMAKE_C_FLAGS="-I/opt/GIT/llvm-project/libcxx/include -I/usr/local/include" \
  -DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
  -DCMAKE_BUILD_TYPE=Release \
  -DLIBCXXABI_LIBCXX_INCLUDE_DIRS="/opt/GIT/llvm-project/libcxx/include" \
  -DLIBCXX_HEADER_DIR="/opt/GIT/llvm-project/libcxx/include" \
  -DLLVM_ENABLE_RUNTIMES="libunwind" \
  -DLIBCXXABI_ENABLE_EXCEPTIONS=False \
  -DLIBCXXABI_ENABLE_THREADS=False \
  -DLIBCXXABI_TARGET_TRIPLE=$TARGET_TRIPLE \
  -DLIBCXXABI_ENABLE_SHARED=False \
  -DLIBCXXABI_ENABLE_STATIC=True \
  ../libcxxabi
</pre>


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS