Skip to content

Releases: noear/socket.d

Socket.D v2.4.9

29 Mar 06:29
Compare
Choose a tag to compare

java 适配更新:

  • 添加 CLOSE2003_DISCONNECTION 关闭码
  • 添加 Pressure 帧类型(预留做背压控制)
  • 修复 当使用二段式关闭时,可能出现无法重连的问题(2.3.10 后出现的)

javascript 适配更新:

  • 添加 CLOSE2003_DISCONNECTION 关闭码
  • 添加 Pressure 帧类型(预留做背压控制)
  • 修复 当使用二段式关闭时,可能出现无法重连的问题(2.3.10 后出现的)

Socket.D v2.4.8

28 Mar 11:58
Compare
Choose a tag to compare

java 适配更新:

  • 添加 X-Hash 元信息支持
  • smartsocket 升为 1.5.43

javascript 适配更新:

  • 添加 X-Hash 元信息支持

Socket.D v2.4.7

21 Mar 05:03
Compare
Choose a tag to compare

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

29 Feb 09:38
Compare
Choose a tag to compare

java 适配更新:

  • 优化 Stream 异常传导性
  • 添加 Entity:delMeta 删除元信息接口

javascript 适配更新:

  • 完善 BrokerListener 实现(node.js 支持 broker 开发了)
  • 添加 Entity:delMeta 删除元信息接口

Socket.D v2.4.4

27 Feb 06:02
Compare
Choose a tag to compare

java 适配更新:

  • 添加 BrokerListener 异常转发支持

javascript 适配更新:

  • 完成 BrokerListener 开发(node.js 支持 broker 开发了)

Socket.D v2.4.3

23 Feb 07:22
Compare
Choose a tag to compare

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

20 Feb 03:41
Compare
Choose a tag to compare

java 适配更新:

  • 添加 连接时 Handshake 元信息交互机制

javascript 适配更新:

  • 添加 连接时 Handshake 元信息交互机制

应用示例:

SocketD.createServer("sd:ws")
    .listen(new EventListener()
        .doOnOpen(s->{s.handshake().outMeta("test","1")})
    )
    .open();

Socket.D v2.4.1

19 Feb 13:21
Compare
Choose a tag to compare

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

08 Feb 03:48
Compare
Choose a tag to compare

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

06 Feb 02:38
Compare
Choose a tag to compare

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();