跳到主要内容

更新日期:2022.9.21 更新描述:兼容性更新,增强型更新。RPC内容需要客户端与服务器同步更新。 更新详情:

优化

  1. Fast二进制序列化,支持自定义序列化。
  2. TouchRpc全系,在文件传输等大型IO时,由于心跳失败而断开连接。
  3. 优化AspNetCore的IContainer。
  4. TcpCommandLinePlugin与WSCommandLinePlugin支持获取客户端参数。

新增

  1. 插件实例会以单例注入容器。
  2. 所有适配器支持缓存超时设定。
  3. 修改所有事件为委托。
  4. 开放AspnetCore创建Tcp,Http等服务器的配置。
  5. IClient增加发送、接收的最后时间记录。
  6. Http支持多文件上传(目前仅支持小文件,具体大小以实际运行内存为准,实测100Mb没问题)。
  7. Websocket插件默认会处理Close报文。且插件支持Close。
  8. Rpc支持模板代码重写。
  9. TouchRpc支持元组。
  10. JsonRpc支持Websocket协议。

修改

  1. IScopedContainer修改为IContainerProvider

修复

  1. BytePool回收内存时不判断大小的bug。

删除

  1. 无。

版本号: 0.6.0

更新日期:2022.9.10 更新描述:兼容性更新,增强型更新。专为Unity 3D适配。 更新详情:

优化

  1. Gzip的压缩效率。
  2. 发送效率。

新增

  1. IDataCompressor数据传输压缩接口。
  2. RemoteStream支持数据读写压缩。
  3. WaitResultPackageBase类,专属非序列化的数据格式化。
  4. DelaySender延迟缓存发送

修改

修复

  1. Rpc注册服务为单例时,实际上是瞬时服务的bug。

删除

  1. 独立线程发送。

版本号: 0.5.0

更新日期:2022.9.1 更新描述:兼容性更新,增强型更新。 更新详情:

优化

  1. 全局资源的获取逻辑。

新增

  1. Container增加卸载注册功能。
  2. FilePool新增FileStorageStream的获取。
  3. http客户端(及websocket)支持代理和验证代理。
  4. TouchRpc全系新增远程文件操作
  5. TouchRpc(除udp)新增远程流访问

修改

修复

  1. 修复Http客户端请求重复Header时的bug。

删除

  1. TouchRpc全系的事件操作,推荐直接插件的方式,或者使用TouchRpcActionPlugin然后添加委托。

更新示例 TouchRpc的相关事件均已使用插件代替。所以请使用插件实现操作。如果需要事件等功能的话,可以用TouchRpcActionPlugin的插件实现。例如:

.UsePlugin()
.ConfigurePlugins(a=>
{
a.Add<TouchRpcActionPlugin<TcpTouchRpcClient>>()//此处的逻辑可用插件替代完成。
.SetFileTransfering((client, e) =>
{
//有可能是上传,也有可能是下载
client.Logger.Info($"服务器请求传输文件,ID={client.ID},请求类型={e.TransferType},文件名={e.FileInfo.FileName}");
})
.SetFileTransfered((client, e) =>
{
//传输结束,但是不一定成功,需要从e.Result判断状态。
client.Logger.Info($"服务器传输文件结束,ID={client.ID},请求类型={e.TransferType},文件名={e.FileInfo.FileName},请求状态={e.Result}");
});
})

版本号: 0.4.5

更新日期:2022.8.25 更新描述:兼容性更新,增强型更新。 更新详情:

优化

  1. FileLogger的写入逻辑,大大地提升了写入效率。

新增

  1. Pipeline适配器
  2. TLV适配器
  3. WaitingClient支持按条件等待返回。
  4. 日志系统可以筛选日志的输出类型
  5. Rpc系统,可以使用单例、瞬时生命周期的服务。
  6. Rpc系统,可定义持久化模型。
  7. Rpc在使用瞬时生命周期的服务时,可以直接获取调用上下文。
  8. XmlRpc增加调用上下文。

修改

  1. 日志系统。
  2. Rpc的调用上下文均采用接口,例如:JsonRpc改为IJsonRpcCallContext,WebApi为IWebApiCallContext。
  3. IRpcActionFilter的参数列表。

修复

  1. UdpSession资源不释放的Bug。

删除

  1. 冗余元素。

版本号: 0.3.5

更新日期:2022.8.12 更新描述:兼容性更新,增强型更新。 更新详情:

优化

  1. 各类客户端发送逻辑。
  2. Method类的调用逻辑。

新增

  1. 适配器可以设定发送IRequestInfo对象。
  2. 插件新增UseWebSocket的快捷方式。
  3. ReconnectionPlugin插件可以获得重连次数的重载设置。
  4. ProTcpService的服务注入。
  5. ProHttpService的服务注入。
  6. ProIOC容器的共享使用。

修改

  1. 各类发送逻辑,以最小化发送方法为基础,其余方法改为扩展方法。
  2. 相关接口的实现。
  3. 由网友修改GetInfo

修复

  1. Container获取泛型失败bug。
  2. BetweenAnd适配器适配器部分bug。
  3. Router标签无法路由的bug。
  4. 修复TouchRpc推送文件状态不正确bug
  5. 修复独立线程在断线重连后发送bug。

删除

  1. 冗余的发送方法,不影响上版本任何使用。

版本号: 0.2.4

更新日期:2022.7.28 更新描述:兼容性更新。 更新详情:

优化

  1. 优化IOC容器。
  2. 优化Metadata的写入方式。
  3. FileLogger,当日志文件达到1Mb时,会再新增文件序号。

新增

  1. Mapper类,支持简单类型映射
  2. Tcp服务器、客户端、udp等增加端口复用配置。
  3. Pro轮询式断线重连。
  4. ProNATService转发客户端重连。

修改

  1. RRQM二进制序列化,改名为Fast。
  2. TouchRpcClient连接时的Metadata,改为由Config配置注入。
  3. FilePool,取消延迟释放机制。

修复

  1. 修复WebSocket连接问题

删除

  1. 客户端直接调用的短线重连方式。仅保留在Config注入的功能。

版本号: 0.1.0

更新日期:2022.7.16 更新描述:初始化版本发布。由RRQMSocket迁移而来。

迁移指南:

1.所有类的命名空间修改,此处如果类型名未修改的话,可由vs智能提示解决。

2.类型名称修改

原类型名称新类型名称
RRQMBitConverterTouchSocketBitConverter
RRQMConfigTouchSocketConfig
RRQMConverterTouchSocketConverter
RRQMDependencyObjectDependencyObject
MsgEventArgsMsgEventArgs
RRQMEventAgrsTouchSocketEventArgs
IServerProviderIRpcServer
ServerProviderSingletonRpcServer
RRQMOverlengthExceptionOverlengthException

3.使用逻辑修改

1)原RRQMConfig设置Logger的方法,改为容器注入: image.png 断线重连逻辑 image.png RpcStore使用变更 如果是仅有一个Rpc解析器,那么可以直接删除RpcStore的声明,从而使用对应的解析器实例,直接注册服务。然后可以通过其属性RpcStore,获取到具体的RpcStore实例。

如果是有多个解析器,那么,首先可以使用任意一个解析器的RpcStore属性实例,作为主RpcStore,然后添加其他解析器。当然也可以直接new RpcStore,然后统一管理解析器。其中构造函数中的Container容器,可以直接new Container(),但是更建议使用和解析器相同的容器,这样注入的服务会变得全局可用。