Socket.D 协议
是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。
pyton 已开发完成,再在测试中;go, rust, c++ 正在开发中。
Socket.D v2.4 在 Broker 集群“可用性”方面有了极大的增强
- 增加安全停止模式
- 增加二段式停止协议
- 增加 ip_hash 转发模式(可用于有状态或需要序顺的场景)
- Broker 的四种转发模式:
name
,name!
,name*
,*
- Broker 的四种转发模式:
- 调整了几个配置名,突出语义性
关于Broker 集群模式相关,可参考:《Broker 集群模式》
for Java 更亲
- 添加 LoadBalancer 集群负载均衡工具
- 添加 BrokerListener 新的转发路由机制,固定给某个接收者(name!)
- 调整 Socketd 开头的异常类改为 SocketD 开头(与 python 统一)
- 调整 几个配置名
接配置名 | 新配置名 | 备注 |
---|---|---|
maxThreads | exchangeThreads | 交换线程数,用于消息接收等(原来的名字,语义不明) |
coreThreads | codecThreads | 解码线程数,用于编解码等(原来的名字,语义不明) |
/ | ioThreads | Io线程数,用于连接等 |
sequenceMode | sequenceSend | 有锁顺序发送(原来的名字,语义不明) |
/ | nolockSend | 无锁发送 |
备注:关于线程配置,在不同的适配时使用情况不同。其中 exchange 支持直接配置线程池(以支持 jdk21 的虚拟线程池)
for JavaScript 更新
- 添加 LoadBalancer 集群负载均衡工具
- 调整 Socketd 开头的异常类改为 SocketD 开头(与 python 统一)
- 调整 几个配置名
接配置名 | 新配置名 | 备注 |
---|---|---|
maxThreads | exchangeThreads | 交换线程数,用于消息接收等(原来的名字,语义不明) |
coreThreads | codecThreads | 解码线程数,用于编解码等(原来的名字,语义不明) |
/ | ioThreads | Io线程数,用于连接等 |
备注:关于线程配置在 js 里,基本没用到
视频演示效果:
- for H5
- https://www.bilibili.com/video/BV1ck4y197BV/
- 演示源码
- for UniAPP
- https://www.bilibili.com/video/BV1T94y1T7sp/
- 演示源码
代码仓库:
- https://gitee.com/noear/socketd
- https://github.com/noear/socketd
官网:
- https://socketd.noear.org