Browse Source
[fix] 修正例程错误,Packet全部改为使用IPacket。close: https://github.com/NewLifeX/NewLife.Net/issues/9#issuecomment-2728378297
master
[fix] 修正例程错误,Packet全部改为使用IPacket。close: https://github.com/NewLifeX/NewLife.Net/issues/9#issuecomment-2728378297
master

10 changed files with 278 additions and 297 deletions
-
8Benchmark/Program.cs
-
7EchoTest/MyNetServer.cs
-
6HandlerTest/App.config
-
33HandlerTest/EchoHandler.cs
-
179HandlerTest/Program.cs
-
4HandlerTest/packages.config
-
48NewLife.Net/Application/EchoHandler.cs
-
49RpcTest/MyClient.cs
-
35RpcTest/MyController.cs
-
206RpcTest/Program.cs
@ -1,6 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<configuration> |
|||
<startup> |
|||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> |
|||
</startup> |
|||
</configuration> |
@ -1,4 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<packages> |
|||
<package id="NewLife.Core" version="7.3.6755.22250" targetFramework="net461" /> |
|||
</packages> |
@ -1,36 +1,34 @@ |
|||
using System; |
|||
using NewLife.Data; |
|||
using NewLife.Data; |
|||
using NewLife.Log; |
|||
using NewLife.Model; |
|||
|
|||
namespace NewLife.Net.Application |
|||
namespace NewLife.Net.Application; |
|||
|
|||
/// <summary>回声处理器</summary>
|
|||
public class EchoHandler : Handler |
|||
{ |
|||
/// <summary>回声处理器</summary>
|
|||
public class EchoHandler : Handler |
|||
/// <summary>读取</summary>
|
|||
/// <param name="context"></param>
|
|||
/// <param name="message"></param>
|
|||
/// <returns></returns>
|
|||
public override Object Read(IHandlerContext context, Object message) |
|||
{ |
|||
/// <summary>读取</summary>
|
|||
/// <param name="context"></param>
|
|||
/// <param name="message"></param>
|
|||
/// <returns></returns>
|
|||
public override Object Read(IHandlerContext context, Object message) |
|||
{ |
|||
var ctx = context as NetHandlerContext; |
|||
var session = ctx.Session; |
|||
var ctx = context as NetHandlerContext; |
|||
var session = ctx.Session; |
|||
|
|||
if (message is Packet pk) |
|||
{ |
|||
var len = pk.Total; |
|||
if (len > 100) |
|||
XTrace.WriteLine("Echo {0} [{1}]", session, len); |
|||
else |
|||
XTrace.WriteLine("Echo {0} [{1}] {2}", session, len, pk.ToStr()); |
|||
} |
|||
if (message is IPacket pk) |
|||
{ |
|||
var len = pk.Total; |
|||
if (len > 100) |
|||
XTrace.WriteLine("Echo {0} [{1}]", session, len); |
|||
else |
|||
XTrace.WriteLine("{0}", message); |
|||
XTrace.WriteLine("Echo {0} [{1}] {2}", session, len, pk.ToStr()); |
|||
} |
|||
else |
|||
XTrace.WriteLine("{0}", message); |
|||
|
|||
session.SendMessage(message); |
|||
session.SendMessage(message); |
|||
|
|||
return null; |
|||
} |
|||
return null; |
|||
} |
|||
} |
@ -1,37 +1,34 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using NewLife.Data; |
|||
using NewLife.Remoting; |
|||
|
|||
namespace RpcTest |
|||
namespace RpcTest; |
|||
|
|||
/// <summary>自定义业务客户端</summary>
|
|||
class MyClient : ApiClient |
|||
{ |
|||
/// <summary>自定义业务客户端</summary>
|
|||
class MyClient : ApiClient |
|||
{ |
|||
public MyClient(String uri) : base(uri) { } |
|||
public MyClient(String uri) : base(uri) { } |
|||
|
|||
/// <summary>添加,标准业务服务,走Json序列化</summary>
|
|||
/// <param name="x"></param>
|
|||
/// <param name="y"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<Int32> AddAsync(Int32 x, Int32 y) |
|||
{ |
|||
return await InvokeAsync<Int32>("My/Add", new { x, y }); |
|||
} |
|||
/// <summary>添加,标准业务服务,走Json序列化</summary>
|
|||
/// <param name="x"></param>
|
|||
/// <param name="y"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<Int32> AddAsync(Int32 x, Int32 y) |
|||
{ |
|||
return await InvokeAsync<Int32>("My/Add", new { x, y }); |
|||
} |
|||
|
|||
/// <summary>RC4加解密,高速业务服务,二进制收发不经序列化</summary>
|
|||
/// <param name="pk"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<Packet> RC4Async(Packet pk) |
|||
{ |
|||
return await InvokeAsync<Packet>("My/RC4", pk); |
|||
} |
|||
/// <summary>RC4加解密,高速业务服务,二进制收发不经序列化</summary>
|
|||
/// <param name="pk"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<IPacket> RC4Async(IPacket pk) |
|||
{ |
|||
return await InvokeAsync<IPacket>("My/RC4", pk); |
|||
} |
|||
|
|||
public async Task<User> FindUserAsync(Int32 uid, Boolean enable) |
|||
{ |
|||
return await InvokeAsync<User>("User/FindByID", new { uid, enable }); |
|||
} |
|||
public async Task<User> FindUserAsync(Int32 uid, Boolean enable) |
|||
{ |
|||
return await InvokeAsync<User>("User/FindByID", new { uid, enable }); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue