# 探索 RRQMSocket:超轻量级网络通信服务框架的卓越魅力
RRQMSocket 是一款整合性的超轻量级网络通信服务框架,拥有诸多强大特性,助您轻松快速搭建网络框架。
## 一、高性能特性
它具备高并发连接、处理能力,支持事件订阅、插件式扩展,采用多线程处理,还有内存池、对象池等。发送效率惊人,同步发送可达 20w/s,异步发送高达 60w/s,服务器接收、处理效率依线程数量而定。
## 二、支持环境与框架
支持多种环境:.NET Framework4.5 及以上、.NET Core3.1 及以上、.NET Standard2.0 及以上。众多框架也都兼容:WPF、Winform、Blazor、Xamarin、Mono、Unity 以及所有 C# 系框架。
## 三、独特特点解析
1. **对象池**
- **连接对象池**:客户端成功连接时,先从连接对象池找 TcpSocketClient,无则创建。客户端掉线,其 TcpSocketClient 被回收,实现 ID 重用。
- **处理对象池**:RRQMSocket 中接收数据线程与 IOCP 内核线程分离。如客户端发 1w 条数据,服务器处理慢,传统 iocp 会放慢接收速率通知客户端拥塞暂缓发送;而 RRQMSocket 将收到的数据存队列,不影响 iocp 接收,再分配线程处理报文,大幅提升数据处理能力。
2. **多线程**
因处理对象池存在,多线程处理更简单。客户端连接完成,自动分配辅助类(TcpSocketClient)消息处理逻辑线程。若服务器线程数为 10,客户端依次循环分配线程。客户端收到数据排入所属线程队列并唤醒线程执行。
3. **传统 IOCP 和 RRQMSocket 的差异**
微软官方用 MemoryBuffer 开辟内存均分,给会话分配接收区,收到数据复制后处理;RRQMSocket 接收前从内存池拿可用内存块直接接收,接收后直接抛出,避免复制操作。传输 1000w 次 64kb 数据时,性能相差 10 倍,这也是文件传输效率高的原因。
4. **数据处理适配器**
借鉴其他优秀 Socket 产品设计理念,RRQMSocket 的数据处理适配器功能更强。可无视真实数据模拟想要的数据,能预处理解决数据分包、粘包问题,还能直接解析 HTTP 协议传回 HttpRequest 对象。
5. **粘包、分包解决**
在 RRQMSocket 中解决 TCP 粘包、分包问题很简单,更改不同数据处理适配器即可。如使用固定包头,给 TcpSocketClient 和 TcpClient 赋值 FixedHeaderDataHandlingAdapter 实例,还有固定长度、终止字符分割等对应处理器。
解压密码: qq112233aa
暂无评论内容