Releases: noear/socket.d
Releases · noear/socket.d
Socket.D v2.4.9
java 适配更新:
- 添加 CLOSE2003_DISCONNECTION 关闭码
- 添加 Pressure 帧类型(预留做背压控制)
- 修复 当使用二段式关闭时,可能出现无法重连的问题(2.3.10 后出现的)
javascript 适配更新:
- 添加 CLOSE2003_DISCONNECTION 关闭码
- 添加 Pressure 帧类型(预留做背压控制)
- 修复 当使用二段式关闭时,可能出现无法重连的问题(2.3.10 后出现的)
Socket.D v2.4.8
java 适配更新:
- 添加 X-Hash 元信息支持
- smartsocket 升为 1.5.43
javascript 适配更新:
- 添加 X-Hash 元信息支持
Socket.D v2.4.7
java 适配更新:
- 添加 spi 手动注册方式
- 调整 读写缓冲大小配置默认 512 改为 4k(主要用在 bio 跟 aio 上)
- 调整 smartsocket 附件的处理(简化)
- 调整 client:open 改为无异常模式
- 调整 Config::isSequenceSend 更名为 isSerialSend
- 调整 Config::getIdGenerator 改为 genId
- 调整 HandshakeDefault path 为空时,默认为 /
- 调整 把发送锁改为配置决伫的固定模式
- 简化 心跳异常日志
javascript 适配更新:
- 添加 Entity::metaAsDouble,metaAsLong,保持与 java 一至(方便文档统一)
- 调整 Config::getIdGenerator 改为 genId
- 调整 HandshakeDefault path 为空时,默认为 /
- 调整 ByteBuffer::getBytes 为异步模式,保持与 BlobBuffer 相同体验
- 修复 StrUtil::parseUri 没有 ? 时出错的问题
- 简化 心跳异常日志
Socket.D v2.4.5
java 适配更新:
- 优化 Stream 异常传导性
- 添加 Entity:delMeta 删除元信息接口
javascript 适配更新:
- 完善 BrokerListener 实现(node.js 支持 broker 开发了)
- 添加 Entity:delMeta 删除元信息接口
Socket.D v2.4.4
java 适配更新:
- 添加 BrokerListener 异常转发支持
javascript 适配更新:
- 完成 BrokerListener 开发(node.js 支持 broker 开发了)
Socket.D v2.4.3
java 适配更新:
- 优化 EntityDefault:metaPut 当 val=null时,视为删除
- 优化 ClientChannel:heartbeatHandle 添加 isClosing 的判断
- 优化 ClientChannel:heartbeatHandle 处理,增加内部会话关闭时,同步到外层
- 优化 ChannelDefault 内部的通道关闭改为延时100ms关,避免 sendClose 时通道坏掉
- 调整 BrokerListener 的能力方法,都改为公有
- 调整 心跳日志级别改为 debug
- 添加 BrokerListenerBase:getPlayerAny(name) 接口
- smart-socket 升为 1.5.42
javascript 适配更新:
- 优化 EntityDefault:metaPut 当 val=null时,视为删除
- 优化 ClientChannel:heartbeatHandle 添加 isClosing 的判断
- 优化 ClientChannel:heartbeatHandle 处理,增加内部会话关闭时,同步到外层
- 优化 ChannelDefault 内部的通道关闭改为延时100ms关,避免 sendClose 时通道坏掉
- 优化 isClosedAndEnd 的判断条件,去掉 CLOSE1000_PROTOCOL_CLOSE_STARTING
Socket.D v2.4.2
java 适配更新:
- 添加 连接时 Handshake 元信息交互机制
javascript 适配更新:
- 添加 连接时 Handshake 元信息交互机制
应用示例:
SocketD.createServer("sd:ws")
.listen(new EventListener()
.doOnOpen(s->{s.handshake().outMeta("test","1")})
)
.open();
Socket.D v2.4.1
java 适配更新:
- 添加 ClientConnectHandler 接口,提供连接时的拦截处理
javascript 适配更新:
- 添加 ClientConnectHandler 接口,提供连接时的拦截处理
应用示例:
SocketD.createClient("sd:ws://127.0.0.1")
.config(c => c
.heartbeatInterval(1000*5)
.fragmentSize(1024 * 1024)
.metaPut("test","1"))
.connectHandler(c=> {
console.log("connect begin...");
return c.connect();
})
.open();
Socket.D v2.4.0
java 适配更新:
- 添加 LoadBalancer 集群负载均衡工具
- 添加 BrokerListener 新的转发路由机制,固定给某个接收者(name!)
- 调整 Socketd 开头的异常类改为 SocketD 开头(与 python 统一)
- 调整 几个配置名
接配置名 | 新配置名 | 备注 |
---|---|---|
maxThreads | exchangeThreads | 交换线程数,用于消息接收等(原来的名字,语义不明) |
coreThreads | codecThreads | 解码线程数,用于编解码等(原来的名字,语义不明) |
/ | ioThreads | Io线程数,用于连接等 |
sequenceMode | sequenceSend | 有锁顺序发送(原来的名字,语义不明) |
/ | nolockSend | 无锁发送 |
备注:关于线程配置,在不同的适配时使用情况不同。其中 exchange 支持直接配置线程池(以支持 jdk21 的虚拟线程池)
javascript 适配更新:
- 添加 LoadBalancer 集群负载均衡工具
- 调整 Socketd 开头的异常类改为 SocketD 开头(与 python 统一)
- 调整 几个配置名
接配置名 | 新配置名 | 备注 |
---|---|---|
maxThreads | exchangeThreads | 交换线程数,用于消息接收等(原来的名字,语义不明) |
coreThreads | codecThreads | 解码线程数,用于编解码等(原来的名字,语义不明) |
/ | ioThreads | Io线程数,用于连接等 |
备注:关于线程配置在 js 里,基本没用到
Socket.D v2.3.11
java 适配更新:
- 添加 Session::closeStarting 接口(为安全退出集群提供机制)
- 添加 Session::isClosing 接口(为安全退出集群提供机制)
- 添加 关闭协议帧对 code 的支持(为安全退出集群提供机制)
- 修复 MappedByteBuffer 不能解除映射的问题(可以改善内存与删除控制)
- 修复 Entity.of(String) 会出错的问题
- 修复 使用临时文件分片处理失效的问题
- 调整 轮询最大值改为 999_999
- 调整 消息发送锁的策略改为可配置(根据 sequenceMode 使用公平锁或非公平锁)
- 调整 smartsocket,websocket,netty 适配的服务端线程数改由配置决定
javascript 适配更新:
- 优化 StrUtil 关于字符转换的处理(优化使用 TextDecoder)
- 添加 Session::closeStarting 接口(为安全退出集群提供机制)
- 添加 Session::isClosing 接口(为安全退出集群提供机制)
- 添加 关闭协议帧对 code 的支持(为安全退出集群提供机制)
变更示例:
安全退出集群机制
//通知要开始关闭了(集群相关方不会再发消息进来)
session.closeStarting();
//等5秒,结束正在处理的消息
sleep(5_000)
//正试关闭
session.close();