标签:
RRQMSocket网络通信框架是一个整合性的、超轻量级的网络通信服务框架。它具有高并发连接、高并发处理、事件订阅、插件式扩展、多线程处理、内存池、对象池等特点,让使用者能够更加简单的、快速的搭建网络框架。在发送效率上,同步发送可达20w/s,异步发送可达60w/s。服务器在接收、处理效率上因线程数量而定。
支持环境:
.NETFramework4.5及以上。
.NETCore3.1及以上。
.NETStandard2.0及以上。
支持框架:
WPF
Winform
Blazor
Xamarin
Mono
Unity
其他(即所有C#系)
特点:
1、对象池
对象池在RRQMSocket有很多应用,最主要的两个就是连接对象池和处理对象池。连接对象池就是当客户端成功连接时,首先会去连接对象池中找TcpSocketClient,然后没有的话,才会创建。如果哪个客户端掉线了,它的TcpSocketClient就会被回收。这也就是ID重用的原因。
然后就是处理对象池,在RRQMSocket中,接收数据的线程和IOCP内核线程是分开的,也就是比如说客户端给服务器发送了1w条数据,但是服务器收到后处理起来很慢,那传统的iocp肯定会放慢接收速率,然后通知客户端的tcp窗口,发生拥塞,然后让客户端暂缓发送。但是在RRQMSocket中会把收到的数据通过队列全都存起来,首先不影响iocp的接收,同时再分配线程去处理收到的报文信息,这样就相当于一个“泄洪湖泊”,能很大程度的提高处理数据的能力。
2、多线程
由于有处理对象池的存在,使多线程处理变得简单。在客户端连接完成时,会自动分配该客户端辅助类(TcpSocketClient)的消息处理逻辑线程,假如服务器线程数量为10,则第一个连接的客户端会被分配到0号线程中,第二个连接将被分配到1号线程中,以此类推,循环分配。当某个客户端收到数据时,会将数据排入当前线程所独自拥有的队列当中,并唤醒线程执行。
3、传统IOCP和RRQMSocket
RRQMSocket的IOCP和传统也不一样的,以微软官方为例,使用MemoryBuffer开辟一块内存,然后均分,然后给每个会话分配一个区接收,等收到数据以后,再复制一份,然后把复制的数据抛出处理。而RRQMSocket是每次接收之前,从内存池拿一个可用内存块,然后直接用于接收,等收到数据以后,直接就把这个内存块抛出去了,这样就避免了复制操作,虽然只是细小的设计,但是在传输1000w次64kb的数据时,性能相差了10倍。所以也是基于此,文件传输时效率才会高。
4、数据处理适配器
相信大家都使用过其他的Socket产品,例如HPSocket,SuperSocket等,那么RRQMSocket在设计时也是借鉴了其他产品的优秀设计理念,数据处理适配器就是其中之一,但和其他产品的设计不同的是,RRQMSocket的适配器功能更加强大,它可以无视真实的数据,而模拟出想要的数据,例如:可以对数据进行预处理,从而解决数据分包。粘包的问题,也可以直接解析HTTP协议,经过适配器处理后传回一个HttpRequest对象等。
5、粘包、分包解决
在RRQMSocket中处理TCP粘包、分包问题是非常简单的。只需要更改不同的数据处理适配器即可。例如:使用固定包头,只需要给TcpSocketClient和TcpClient赋值FixedHeaderDataHandlingAdapter的实例即可。同样对应的处理器也有固定长度、终止字符分割等。
RRQMSocket网络通信框架 v5.2.1 更新日志:
增加:TerminatorDataHandlingAdapter可以保留分割符。
增加:IOCP拥塞接收模式,客户端默认拥塞接收,服务器默认多线程接收。
优化:等待池获取逻辑。
修复:FixedSizeDataHandlingAdapter重复释放Bug。
修复:TcpClient释放Dispose后不触发断开连接事件。
修复:TcpClient独立线程异常Bug。
加载全部内容
EltonWeb框架234KB125人下载Elton的实现参考了koa以及echo,统一中间件的形式,方便定制各类中间件,所有中间件的处理方式都非常简单,如果需要转给下一中间件,则调用Context.Next(),如果当前中间件出错,则返回Error结束调用,如果无需要转至下一中间件,则无需要调用Context.Next()。对于成功返回只需将响应数据赋值Context.Body = 响应数据,由响应中间件将Body转换为相应的响应数据,
下载Furion Web 开发框架 最新版135.49MB118人下载 Furion Web开发框架是一个以 .NET 进行开发的非常齐全且兼容性高的一款轻量级框架。
下载Taro多端统一开发框架4.16MB106人下载Taro框架是由京东 - 凹凸实验室打造的一套遵循 React 语法规范的多端统一开发框架。现如今市面上端的形态多种多样,Web、App 端(React Native)、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。使用 Taro,我们可以只书写一套代码,再通过 Tar
下载Ant Design阿里开源企业级框架 v3.25.32.51 MB104人下载Ant Design 是阿里开源的一套企业级的 UI 设计语言和 React 实现,使用 TypeScript 构建,提供完整的类型定义文件,自带提炼自企业级中后台产品的交互语言和视觉风格、开箱即用的高质量
下载FastAPI高性能Web框架5.77MB104人下载FastAPI是一个高性能Web框架,用于构建API。FastAPI主要特性:1、快速:非常高的性能,与NodeJS和Go相当2、快速编码:将功能开发速度提高约200%至300%3、更少的错误:减少约40%的人为错误4、直观:强大的编辑器支持,自动补全无处不在,调试时间更少5、简易:旨在易于使用和学习,减少阅读文档的时间。6、简短:减少代码重复。7、稳健:获取可用于生产环境的代码,具有自动交互式文
下载AdonisWeb框架327KB104人下载Adonisjs是一个Node.js Web框架,专注于易用性与速度。它甚至是一个全栈Web框架,解决了许多Web开发难题,提供了一个干净稳定的API,用于构建Web应用和微服务,或者用于TDD(测试驱动开发)。Adonisjs特色:类型安全类型安全被嵌入到框架中,并对TypeScript提供一流的支持。无需安装任何额外的构建工具,TypeScript只需与AdonisJS一起工作。可扩展性无需在
下载acl框架库 官方版27.4MB104人下载 acl 框架库是一个 C 库,主要包含:服务器开发框架、同步/异步网络通讯、常用数据结构、进程池/线程池、流式 xml/json 解析器、http/ping 应用协议等内容。acl 包括以下丰富的常用函数库:1、常见网络应用库:SMTP 客户端库/PING 库/memcache 客户端库/handlersocket 客户端库/beanstalk 客户端库2、HTTP 网络库:HTTP 客户端/服务
下载Bootstrap 编译版365KB103人下载Bootstrap3是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。
下载Foundation响应式前端框架11.44MB103人下载Foundation响应式前端框架是一个易用、强大而且灵活的框架,用于构建基于任何设备上的 Web 应用。提供多种 Web 上的 UI 组件,如表单、按钮、Tabs 等等。Foundation 是世界上比较先进的响应式前端框架。使用 Foundation 快速从原型到生产、构建可在任何类型设备上运行的站点或应用程序。包括一个完全可定制的响应式网格、一个大型 Sass 混合库、常用的 JavaScr
下载Ant Design前端框架3.09MB102人下载Ant Design 是阿里开源的一套企业级的 UI 设计语言和 React 实现,使用 TypeScript 构建,提供完整的类型定义文件,自带提炼自企业级中后台产品的交互语言和视觉风格、开箱即用的高质量 React 组件与全链路开发和设计工具体系。特性:提炼自企业级中后台产品的交互语言和视觉风格。开箱即用的高质量 React 组件。使用 TypeScript 开发,提供完整的类型定义文件。全链
下载