ダーク/ライト切り替え

【gRPC】VSCODEとDotNetでgRPC環境を構築してみる

投稿日2023-02-05

Picture of the logo


目次

目次を読み込み中...

Visual StudioではなくVSCODE上でgRPC環境の構築を簡潔させます。今回は初歩的な開通テストなのでHTTPS化はしません。前提条件としてDotNetCLIが使える状態であること。

# サーバー側の構築

# テンプレの作成

まずターミナル上でdotnet new grpc -o [プロジェクト名]と打ち込んで実行する。 プロジェクト名のディレクトリが出来るのでそこをワークスペースとしてVSCODEを開く。 すると初めからサーバーは既にほぼ動く状態に出来上がっている。

Server
Protosにある.protoファイルはクライアント側でも使います。

# launchSettings.jsonの修正

今回はHTTPのみのテストなのでHTTPSの部分をコメントアウトするか削除する。しないとエラーで起動しない。

launchSetting

# クライアント側の構築

別の場所にdotnet new console -o [プロジェクト名]として、新しくワークスペースを作る。

# protosの作成

プロジェクトのトップディレクトリにprotosディレクトリを作成し、先ほどのサーバー側で作られたgreet.protoをコピーする

namespaceはクライアント側のものと同じClientとする。

.protoファイルのコピーが終わったら、プロジェクトファイル(.csproj)に下記の追記をする。

csproj追記

# 必要なパッケージをインストールする

必要なパッケージは3つ

  • ・ Grpc.Net.Client
  • ・ Google.Protobuf
  • ・ Grpc.Tools

パッケージのインストールにはNuget Package Managerが便利です。

Nuget

# C#コードの作成

次にC#コードの記述ですが、一旦これだけ書いたところでビルドする。

まず一度、dotnet buildでビルドしたところで残りのコードを記述する。この、「先に一度ビルドをする」ことでprotobufに対するC#コードが自動生成される。

これをせずに一気に全てのコードを書いてしまうと、Greeterクラスが存在せずエラーになってしまう。

ビルドが成功したら残りのコードも書きましょう。

このサンプルでは、gRPCクライアントを作成するために、GreeterClientクラスを使用しています。このクラスは、gRPCサーバーとの通信に必要な通信チャネルを管理します。

gRPCクライアントが作成されたら、SayHelloAsyncメソッドを使用して、gRPCサーバーにリクエストを送信することができます。このメソッドは、非同期で実行されるため、gRPCサーバーからのレスポンスを待つことができます。

# 実行結果

まずサーバー側を起動して待ち受け状態にする。 次にクライアント側を実行する。結果は下記のとおり。

result

以上で、dotnetを用いたc# gRPCの開通テストは終わりです。






関連記事

Firebase AuthentificationでEmailアカウントと匿名アカウントを実装する

blog

今回はFirebase Authentificationを使ってUnityに匿名認証、メール認証を実装する手順を紹介します。

【Unity】文字列に禁止ワードが含まれているかチェックをする方法

blog

Unityで下品な単語など望ましくない言葉が含まれていないかをチェックする方法を紹介します

Unityでモザイク処理をする方法

blog

今回はUnityで画像にモザイク処理を掛ける方法を紹介します。標準機能では用意されていないようなのでカスタムシェーダーで実装します。

【Unity】MagicOnionサーバを立ち上げて自己証明書でSSL通信してみる

blog

Unity向けgrpcサーバーManicOnionの導入時にSSL化やNGINXの設定に少し手こずったので備忘録も兼ねて手順をまとめておきました。

Unity】一枚のイメージ画像を縦横のタイル状に分割する方法

blog

UnityのUGUIを使用して、一枚のイメージ画像を縦横に分割して表示する方法を紹介します。

GO言語サーバーとUnityクライアント(C#)をgRPCで接続テストしてみた【入門レベル】

blog

UnityでgRPCをする場合、Magic Onionを使うのがお手軽ですが、今回はGO言語でサーバーを構築してみたかったので最低限の接続機能を自作してみました。備忘録を兼ね書き残しておきます。

【Unity】セーブデータの改ざんやチート対策を考えてみる

blog

ゲーム開発者にとって、チートは永遠の悩みです。どんなに対策しても開発者とチーターは「いたちごっこ」です。今回は初歩的な手段ではありますが、CRCやSHA256といった技術を使ってデータの改ざん、チート行為を検出する方法を紹介します。

【Unity】Go言語でDLLをビルドしてUnityからネイティブプラグインとして呼び出す【備忘録】

blog

Unity用ネイティブプラグインをGo言語で作成した時に手こずった部分を個人的備忘録も兼ねてまとめましたので、似たような事を考えている人はご参考までに。

【Rust】Tonicでgrpcの接続テストをするまで【初学者】

blog

VscodeでrustのDev Containerを作り、Tonicを使ったgrpcサーバとクライアントを作り、接続テストをしてみる。接続の結果、お馴染みのHello worldが表示される。

FirebaseStorageからUnityへファイルを読み込み、Resourcesに保存する

blog

UnityでFIREBASEのStorageサービスから画像ファイルをダウンロードしてシーン上に表示、保存するまでの簡単な手順紹介です。


スポンサーリンク

このサイトをシェアする