42 Star 424 Fork 98

GVPnoear / socket.d

2024-05-23 18:28
15535 noear admin 1683858335 西东

java 适配更新:

  • 添加 java-websocket 适配子协议验证(避免乱连)
  • 添加 spring-websocket 适配子协议验证(避免乱连)
  • 添加 BroadcastBroker 接口(提供类似 stomp 的体验)
  • 添加 LoadBalancer:isActive 接口
  • 修复 server.stop 后不能自动通出的进程问题(在 tomcat 部署下)
  • 修复 session.close 后不能自动通出的进程问题(在 tomcat 部署下)

javascript 适配更新:

  • 添加 websocket 适配子协议验证(避免乱连)

python 适配更新:

  • 添加 websocket 适配子协议验证(避免乱连)

兼容提醒:

sd:ws 需要客户端和服务端同时升级(因为加了 子协议验证

2024-05-17 14:50
15535 noear admin 1683858335 西东

java 适配更新:

  • 优化 内存的限流控制提示

javascript 适配更新:

python 适配更新:

最后提交信息为: 2.4.18
2024-05-16 17:34
15535 noear admin 1683858335 西东

java 适配更新:

  • 添加 基于内存的限流控制支持

javascript 适配更新:

python 适配更新:

最后提交信息为: 2.4.17
2024-05-12 22:24
15535 noear admin 1683858335 西东

java 适配更新:

  • 添加 Session::attrDel 接口
  • 添加 ListenerWrapper 类,方便应用定制
  • 优化 java-websocket 适配,增加 header 转移
  • 优化 spring-websocket 适配,增加 header 转移
  • 优化 java-websocket 适配,增加 setReuseAddr(true) 配置

javascript 适配更新:

  • 添加 提供者手动注册接口
  • 优化 SocketD.newEntity 与小程序的兼容性(小程不支持 File、Blob 类型)

python 适配更新:

  • 修复 stream.on_reply 非异步调用出错的问题
  • 优化 流的超时处理
  • 调整 语言版本需求改为 3.10
最后提交信息为: 2.4.16
2024-05-12 10:41
15535 noear admin 1683858335 西东

java 适配更新:

  • 添加 Session::attrDel 接口
  • 优化 java-websocket 适配,增加 header 转移
  • 优化 spring-websocket 适配,增加 header 转移
  • 优化 java-websocket 适配,增加 setReuseAddr(true) 配置

javascript 适配更新:

  • 添加 提供者手动注册接口
  • 优化 SocketD.newEntity 与小程序的兼容性(小程不支持 File、Blob 类型)

python 适配更新:

  • 修复 stream.on_reply 非异步调用出错的问题
  • 优化 流的超时处理
  • 调整 语言版本需求改为 3.10
最后提交信息为: 2.4.15
2024-04-29 18:15
15535 noear admin 1683858335 西东

java 适配更新:

javascript 适配更新:

python 适配更新:

  • 优化 协议跨语言编码解兼容
  • 优化 异步栈的日志记录
最后提交信息为: 2.4.14
2024-04-29 09:13
15535 noear admin 1683858335 西东

java 适配更新:

javascript 适配更新:

python 适配更新:

  • 优化 协议跨语言编码解兼容
  • 优化 异步栈的日志记录
最后提交信息为: 2.4.13
2024-04-25 14:03
15535 noear admin 1683858335 西东

java 适配更新:

  • 调整 Processor:onError 添加 try-catch 处理
  • 优化 socketd-transport-netty udp 的连接状态管理

javascript 适配更新:

  • 调整 Processor:onError 添加 try-catch 处理

pythone 适配更新:

  • 调整 Processor:onError 添加 try-catch 处理
最后提交信息为: 2.4.12
2024-04-23 11:12
15535 noear admin 1683858335 西东

java 适配更新:

  • 调整 本端关闭时,也触发本端的 onClose 事件
  • 禁止 ws 客户端连接 sd:ws 服务(避免因为 ws 心跳,又不会触发空闲超时)
  • 优化 socketd-transport-java-kcp 服务端停止处理(添加延时,确保指令发送完成)
  • 优化 socketd-transport-java-tcp 在某些操作系统下空跑可能 cpu 过高的问题

javascript 适配更新:

  • 调整 本端关闭时,也触发本端的 onClose 事件
  • 禁止 ws 客户端连接 sd:ws 服务(避免因为 ws 心跳,又不会触发空闲超时)

pythone 适配更新:

  • 调整 本端关闭时,也触发本端的 onClose 事件
  • 禁止 ws 客户端连接 sd:ws 服务(避免因为 ws 心跳,又不会触发空闲超时)
最后提交信息为: README
2024-04-12 22:13
15535 noear admin 1683858335 西东

java 适配更新:

  • 添加 preclose 和 prestop(简化二段式停止操作)
  • 调整 通道关闭打印条件(避免多次打印)

javascript 适配更新:

  • 添加 preclose 和 prestop(简化二段式停止操作)
  • 调整 通道关闭打印条件(避免多次打印)
2024-03-29 14:27
15535 noear admin 1683858335 西东

java 适配更新:

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

javascript 适配更新:

  • 添加 CLOSE2003_DISCONNECTION 关闭码
  • 添加 Pressure 帧类型(预留做背压控制)
  • 修复 当使用二段式关闭时,可能出现无法重连的问题(2.3.10 后出现的)
最后提交信息为: 2.4.9
2024-03-28 19:57
15535 noear admin 1683858335 西东

java 适配更新:

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

javascript 适配更新:

  • 添加 X-Hash 元信息支持
最后提交信息为: 2.4.8
2024-03-21 13:00
15535 noear admin 1683858335 西东

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 没有 ? 时出错的问题
  • 简化 心跳异常日志
最后提交信息为: 2.4.7
2024-02-29 17:37
15535 noear admin 1683858335 西东

java 适配更新:

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

javascript 适配更新:

  • 完善 BrokerListener 实现(node.js 支持 broker 开发了)
  • 添加 Entity:delMeta 删除元信息接口
最后提交信息为: 2.4.5
2024-02-27 13:53
15535 noear admin 1683858335 西东

java 适配更新:

  • 添加 BrokerListener 异常转发支持

javascript 适配更新:

  • 完成 BrokerListener 开发(node.js 支持 broker 开发了)
最后提交信息为: 2.4.4
2024-02-23 15:21
15535 noear admin 1683858335 西东

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
最后提交信息为: 2.4.3
2024-02-20 11:40
15535 noear admin 1683858335 西东

java 适配更新:

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

javascript 适配更新:

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

应用示例:

SocketD.createServer("sd:ws")
    .listen(new EventListener()
        .doOnOpen(s->{s.handshake().outMeta("test","1")})
    )
    .open();
最后提交信息为: 2.4.2
2024-02-19 21:20
15535 noear admin 1683858335 西东

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();
最后提交信息为: 2.4.1
2024-02-08 11:47
15535 noear admin 1683858335 西东

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 里,基本没用到

最后提交信息为: 2.4.0
2024-02-06 10:36
15535 noear admin 1683858335 西东

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();
最后提交信息为: 2.3.11
Java
1
https://gitee.com/noear/socket.d.git
git@gitee.com:noear/socket.d.git
noear
socket.d
socket.d

搜索帮助