有用户说,“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 |
本次 java 适配更新:
- 添加 ssl 双向认证支持
- 添加 Config:isSslNeedClientAuth,isSslWantClientAuth 配置
本次 javascript 适配更新:
- 添加 ssl 双向认证支持(只适合 node.js)
- 添加 Config:getSslContext(), sslContext() 方法
代码仓库
- https://www./link/0789e47353cb91045d7bd8a39bff5d0b
- https://github.com/noear/socketd
官网
- https://socketd.noear.org
源码地址:点击下载