LoginSignup
3
3

YetAnotherHttpHandlerをMagicOnionで導入する方法

Posted at

はじめに

以前MagicOnionの導入方法を紹介させていただきましたが、記事を公開した後Cysharp様がYetAnotherHttpHandlerをリリースされていたので導入方法を紹介したいと思います。

前回の記事のUnityインストール手順とクライアントコード以外は同じになります。

インストール手順

プロジェクト設定

Api Compatibility Levelを.NET Frameworkに

Scripting Define Symbolsに以下を追加

  • USE_GRPC_NET_CLIENT
  • USE_GRPC_NET_CLIENT_ONLY

image.png

YetAnotherHttpHandlerインストール

Window/PackageManagerの+Add package from git urlに以下を追加してパッケージ追加

https://github.com/Cysharp/YetAnotherHttpHandler.git?path=src/YetAnotherHttpHandler#v0.1.0

最新のURLが変わる可能性があるので、YetAnotherHttpHandlerのGitHubページをご確認ください

以下のページから以下をダウンロードしてパッケージインポート

  • Cysharp.Net.Http.YetAnotherHttpHandler.Dependencies.unitypackage
  • Grpc.Net.Client.Dependencies.unitypackage

MessagePackインストール

MessagePackのリリースページからUnityPackageをダウンロード

すべてを選択してインポートした後、YetAnotherHttpHandlerの依存パッケージに含まれていた

Plugins/System.Runtime.CompilerServices.Unsafe

を削除

MagicOnionインストール

リリースページから最新のUnityPackageを入手

Pluginsの選択を外してインポート実行

Unityクライアントコード

using MagicOnion;

public interface IMyFirstService : IService<IMyFirstService>
{
    UnaryResult<int> SumAsync(int x, int y);
}
using Cysharp.Net.Http;
using Grpc.Net.Client;
using MagicOnion.Client;
using UnityEngine;

public class Sample : MonoBehaviour
{
    void Start()
    {
        CallTest();
    }

    private async void CallTest()
    {
        var handler = new YetAnotherHttpHandler();
        handler.Http2Only = true;
        var options = new GrpcChannelOptions { HttpHandler = handler, UnsafeUseInsecureChannelCallCredentials = false };
        var channel = GrpcChannel.ForAddress("http://localhost:5000", options);
        var client = MagicOnionClient.Create<IMyFirstService>(channel);
        var result = await client.SumAsync(1, 2);
        Debug.Log($"Result: {result}");
        await channel.ShutdownAsync();
    }
}

まとめ

前回の記事で簡単に導入できるそうと追記しましたが、それぞれのパッケージの導入手順通りにやっても導入できなかったのでそこまで簡単ではありませんでした。
気が向いて軽く検証してまとめた記事ですが、ご参考になれば幸いです!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3