コード例 #1
0
ファイル: RpcTest.cs プロジェクト: christianhood/EuNet
 public override Task <InterfaceSerializeClass> GreetInterfaceSerializeClass(InterfaceSerializeClass dataClass)
 {
     return(Task.FromResult(new InterfaceSerializeClass()
     {
         Int = dataClass.Int + 1,
     }));
 }
コード例 #2
0
        private async Task <NetClient> WorkClient(bool isServiceUdp, int sendCount)
        {
            NetClient client = new NetClient(new ClientOption()
            {
                TcpServerAddress = "127.0.0.1",
                TcpServerPort    = 9000,
                IsServiceUdp     = isServiceUdp,
                UdpServerAddress = "127.0.0.1",
                UdpServerPort    = 9001
            });

            client.AddRpcService(new GreeterService());
            var rpc = new GreeterRpc(client);

            client.OnErrored += (e) =>
            {
            };

            client.OnClosed += () =>
            {
            };

            Task.Factory.StartNew(async() =>
            {
                await Task.Delay(100);
                Stopwatch sw = Stopwatch.StartNew();
                while (client.State != SessionState.Closed)
                {
                    sw.Stop();
                    client.Update((int)sw.ElapsedMilliseconds);
                    sw.Restart();
                    await Task.Delay(30);
                }
            }).DoNotAwait();

            var connected = await client.ConnectAsync(null);

            Assert.True(connected);

            var result = await rpc.Greet("Greet server!");

            Assert.AreEqual("Result greet! Greet server!", result);
            Console.WriteLine(result);

            result = await rpc.Greet("Greet server!");

            Assert.AreEqual("Result greet! Greet server!", result);
            Console.WriteLine(result);

            var dataClass = new DataClass()
            {
                Int            = 123,
                Property       = 456,
                String         = "789",
                IgnoreInt      = 987,
                IgnoreProperty = 567,
            };
            var resultClass = await rpc.GreetClass(dataClass);

            Assert.AreEqual(dataClass.Int + 1, resultClass.Int);
            Assert.AreEqual(dataClass.Property + 1, resultClass.Property);
            Assert.AreEqual(dataClass.String + "1", resultClass.String);
            Assert.AreNotEqual(dataClass.IgnoreInt, resultClass.IgnoreInt);
            Assert.AreNotEqual(dataClass.IgnoreProperty, resultClass.IgnoreProperty);


            var interfaceSerializeClass = new InterfaceSerializeClass()
            {
                Int = 123,
            };
            var resultinterfaceSerializeClass = await rpc.GreetInterfaceSerializeClass(interfaceSerializeClass);

            Assert.AreEqual(interfaceSerializeClass.Int + 1, resultinterfaceSerializeClass.Int);


            rpc.WithNoReply().Greet("1234567890");

            await Task.Delay(1000);

            return(client);
        }