Socket.D 网络应用层协议,v2.1.15 发布
发布时间:2023年12月21日
有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”
主要特性
- 基于事件,每个消息都可事件路由
- 所谓语义,通过元信息进行语义描述
- 流关联性,有相关的消息会串成一个流
- 语言无关,使用二进制输传数据(支持 tcp, ws, udp)。支持多语言、多平台
- 断线重连,自动连接恢复
- 多路复用,一个连接便可允许多个请求和响应消息同时运行
- 双向通讯,单链接双向互听互发
- 自动分片,数据超出 16Mb(大小可配置),会自动分片、自动重组(udp 除外)
- 接口简单,是响应式但用回调接口
与其它协议的简单对比
对比项目 | socket.d | http | websocket | rsocket | socket.io |
---|
发消息(Qos0) | 有 | 无 | 有 | 有 | 有 |
发送并请求(Qos1) | 有 | 有 | 无 | 有 | 无 |
发送并订阅 | 有 | 无 | 无 | 有 | 无 |
答复或响应 | 有 | 有 | 无 | 有 | 无 |
单连接双向通讯 | 有 | 无 | 有(不便) | 有 | 有(不便) |
数据分片 | 有 | / | 无 | 有 | 有 |
断线自动重连 | 有 | / | 无 | 有 | 有 |
有元信息 | 有 | 有 | 无 | 有 | 无 |
有事件(或路径) | 有 | 有 | 无 | 无 | 有 |
有流(或消息关联性) | 有 | 无 | 无 | 有 | 无 |
Broker 模式集群 | 有 | 无 | 无 | 有 | 无 |
异步 | 异步 | 同步 | 异步 | 异步 | 异步 |
接口体验 | 经典 | 经典 | 经典 | 响应式(复杂) | 经典 |
基础传输协议 | tcp, udp, ws | tcp | http | tcp, udp, ws | ws |
本次实现框架更新
- 开放 BrokerListener 的两私有函数级别
- 添加 分片处理临时方件方案实现(FragmentHandlerTempfile)
- 添加 ClusterClient 通道线程池复用
- 添加 Reply 接收到的答复实体(多了 isEnd 方法)
- 添加 异步发送时错误接收机制
- 添加 协议时 channel.onOpenFuture() 异常关闭通道处理
- 调整 原流接收器,更名为流(分流接口与流内部接口)
- 调整 Broker 转发时,增加会话有效性检测
- 修复 小文件上传时出现 MappedByteBuffer:array 异常
- 优化 RunUtils 线程数使用
- 优化 分片触发条件
- 优化 onOpen 监听改造为异步模式(可以在 onOpen 时执行发送并等待)
- 优化 BrokerListener 对无效会话的过滤
代码仓库
- https://gitee.com/noear/socketd
- https://github.com/noear/socketd
文章来源:https://blog.csdn.net/cwzb/article/details/135122460
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!