예제 #1
0
    IEnumerator coRpcServiceExample(RpcServiceExampleRequest request, RPCHandler <RpcServiceExampleReply> handler)
    {
        try
        {
            var reply = client.RpcServiceExample(request);

            handler(reply);
        }
        catch (Grpc.Core.RpcException e)
        {
            Debug.LogError("RPC failed " + e);
        }

        yield return(null);
    }
예제 #2
0
    // Start is called before the first frame update
    void Start()
    {
        // 사용 예시
        RpcServiceExampleRequest request = new RpcServiceExampleRequest();

        request.Arg1 = 1;
        request.Arg2 = 2.0f;
        request.Arg3 = "3";
        request.Arg4 = true;
        request.Arg5.Add(4);
        request.Arg5.Add(5);

        // 요청
        RpcServiceManager.Instance.RpcServiceExample(request, delegate(RpcServiceExampleReply reply)
        {
            // 응답
            Debug.Log("RpcService : " + reply);
        });
    }
예제 #3
0
    IEnumerator coRpcServiceExample(RpcServiceExampleRequest request, RPCHandler <RpcServiceExampleReply> handler)
    {
        //try
        //{
        //    var metaData = new Metadata
        //    {
        //        { "access_key", GameDataManager.Instance.userData.accessKey }
        //    };

        //    var reply = client.RpcServiceExample(request, metaData);

        //    handler(reply);
        //}
        //catch (Grpc.Core.RpcException e)
        //{
        //    Debug.LogError("RPC failed " + e);
        //}

        yield return(null);
    }
예제 #4
0
 public override Task <RpcServiceExampleReply> RpcServiceExample(RpcServiceExampleRequest request, ServerCallContext context)
 {
     return(Task.FromResult(new RpcServiceExampleReply()));
 }
예제 #5
0
    // HealthCheck - Check
    //public void Check(HealthCheckRequest request, RPCHandler<HealthCheckResponse> handler)
    //{
    //    healthCheckThread = new Thread(() =>
    //    {
    //        int intervalTime = 60 * 1000;//Time.time + (10.0f * 60.0f);

    //        //try
    //        //{
    //        //    while (running)
    //        //    {
    //        //        //if (Time.time < intervalTime)
    //        //        //{
    //        //        //    continue;
    //        //        //}

    //        //        var metaData = new Metadata
    //        //        {
    //        //            { "access_key", GameDataManager.Instance.userData.accessKey }
    //        //        };

    //        //        var reply = health.Check(request, metaData);

    //        //        handler(reply);

    //        //        Thread.Sleep(intervalTime);
    //        //    }
    //        //}
    //        //catch (Grpc.Core.RpcException e)
    //        //{
    //        //    Debug.LogError("RPC failed " + e);
    //        //}
    //    });


    //    healthCheckThread.Start();
    //    //StartCoroutine(coCheck(request, handler));
    //}

    //IEnumerator coCheck(HealthCheckRequest request, RPCHandler<HealthCheckResponse> handler)
    //{
    //    try
    //    {
    //        while (running)
    //        {
    //            //if (Time.time < intervalTime)
    //            //{
    //            //    continue;
    //            //}

    //            var metadata = new Metadata
    //            {
    //                { "access_key", GameDataManager.Instance.userData.accessKey }
    //            };

    //            var reply = health.Check(request, metadata);

    //            handler(reply);
    //        }
    //    }
    //    catch (Grpc.Core.RpcException e)
    //    {
    //        Debug.LogError("RPC failed " + e);
    //    }

    //    yield return null;
    //}

    // HealthCheck - Watch
    //public void Watch(HealthCheckRequest request,
    //    RPCHandler<HealthCheckResponse> handler)
    //{
    //    //coWatch(request, handler);

    //    //await task;
    //    //StartCoroutine(coWatch(request, handler));
    //    //await coWatch(request, handler);

    //    healthWatchThread = new Thread(async () =>
    //    {
    //        //try
    //        //{
    //        //    while (running)
    //        //    {
    //        //        var metaData = new Metadata
    //        //        {
    //        //            { "access_key", GameDataManager.Instance.userData.accessKey }
    //        //        };

    //        //        using (var call = health.Watch(request, metaData))
    //        //        {
    //        //            while (await call.ResponseStream.MoveNext())
    //        //            {
    //        //                HealthCheckResponse reply = call.ResponseStream.Current;
    //        //                handler(reply);
    //        //            }
    //        //        }
    //        //    }
    //        //}
    //        //catch (Grpc.Core.RpcException e)
    //        //{
    //        //    Debug.LogError("RPC failed " + e);
    //        //}
    //    });

    //    healthWatchThread.Start();
    //}

    //void coWatch(HealthCheckRequest request,
    //    RPCHandler<HealthCheckResponse> handler)
    //{
    //    Thread thread = new Thread(async () =>
    //    {
    //        try
    //        {
    //            using (var call = health.Watch(request))
    //            {
    //                while (await call.ResponseStream.MoveNext())
    //                {
    //                    HealthCheckResponse reply = call.ResponseStream.Current;
    //                    handler(reply);
    //                }
    //            }

    //            //var reply = health.Watch(request);

    //            //handler(reply);
    //        }
    //        catch (Grpc.Core.RpcException e)
    //        {
    //            Debug.LogError("RPC failed " + e);
    //        }
    //    });
    //}

    // RpcServiceExample
    public void RpcServiceExample(RpcServiceExampleRequest request, RPCHandler <RpcServiceExampleReply> handler)
    {
        StartCoroutine(coRpcServiceExample(request, handler));
    }