高性能的 TCP 服务框架是 AutoCSer 的核心组件,支持若干全局默认配置,需要引用 AutoCSer\Packet\*\AutoCSer.dll + AutoCSer.TcpSimpleServer.dll。
TCP 接口同步应答服务基于 Emit 动态生成代理类型,相对于使用静态代码生成的 TCP 函数同步应答服务框架上手简单,但功能支持相对简单,服务端仅支持同步模式。
框架根据应用场景分为内部服务与开放服务,两种服务的默认配置参数与防御攻击策略不同。
内部服务默认配置:数据缓冲区 64KB,最大发送数据缓冲区 1MB,验证超时 4s,客户端失败重连时间 10ms,批量输出休眠等待时间 0ms,使用二进制序列化,服务端开启线程输出,客户端启动时创建连接,支持服务注册。
开放服务默认配置:数据缓冲区 8KB,服务端最大发送数据缓冲区 8KB,验证超时 9s,客户端失败重连时间 1s,批量输出无等待时间,使用 JSON 序列化,服务端同步输出,客户端在第一次访问时创建连接,客户端最大自定义数据包为 16KB
注意:interface 接口定义必须使用 public 修饰,而且对于其它程序集可见。
. 同步函数支持 ref / out 参数。
. 支持接口继承与显示接口实现
. 集成支持远程表达式链
. 简单序列化模式,采用二进制序列化模式时,输入输出参数类型如果全部属于以下类型,将默认开启简单序列化模式以提升序列化性能,否则将使用支持循环引用与成员选择的通用二进制序列化。
bool, byte, sbyte, short, ushort, int, uint, long, ulong, float, double, decimal, char, DateTime, Guid, string
bool?, byte?, sbyte?, short?, ushort?, int?, uint?, long?, ulong?, float?, double?, decimal?, char?, DateTime?, Guid?, enum
性能测试项目
AutoCSer\TestCase\TcpServerSimplePerformance\AutoCSer.TestCase.TcpInternalSimpleServerPerformance.Emit
AutoCSer\TestCase\TcpClientSimplePerformance\AutoCSer.TestCase.TcpInternalSimpleClientPerformance.Emit
. 同步函数支持 ref / out 参数。
. 支持接口继承与显示接口实现
. 集成支持远程表达式链
. 简单序列化模式,采用二进制序列化模式时,输入输出参数类型如果全部属于以下类型,将默认开启简单序列化模式以提升序列化性能,否则将使用支持循环引用与成员选择的通用二进制序列化。
bool, byte, sbyte, short, ushort, int, uint, long, ulong, float, double, decimal, char, DateTime, Guid, string
bool?, byte?, sbyte?, short?, ushort?, int?, uint?, long?, ulong?, float?, double?, decimal?, char?, DateTime?, Guid?, enum
性能测试项目
AutoCSer\TestCase\TcpServerSimplePerformance\AutoCSer.TestCase.TcpOpenSimpleServerPerformance.Emit
AutoCSer\TestCase\TcpClientSimplePerformance\AutoCSer.TestCase.TcpOpenSimpleClientPerformance.Emit