Skip to content

Latest commit

 

History

History
1296 lines (676 loc) · 76.9 KB

CHANGELOG.md

File metadata and controls

1296 lines (676 loc) · 76.9 KB

Changelog

0.3.4 (2023-12-01)

Features | 新特性

  • huge.Int 增加部分辅助函数 (6127fb6)
  • sole 包支持获取自增循环的 id,同时支持自增循环的 string 类型的数字 id (8e94a66)
  • super 包新增 OldVersion 和 CompareVersion 函数用于版本比较 (23d2235)

Bug Fixes | 修复

  • log 包日志配置无效问题修复 (c6b929a)
  • 修复 ReadLineWithParallel 当读取到文件尾时,返回的 offset 有误的问题 (f6ea696)

Docs | 文档优化

  • 修正 @kuchaguangjie#67 提到的 README.md 服务器定时器示例错误、补充 WithTicker 函数注释 (6922999)
  • 更新 README.md 文件中对于分流服务器部分的说明 (61b4ef7)

Code Refactoring | 重构

  • 优化及重构 server 包关于 WebSocket 的消息类型和消息分流部分内容 (dc557a0)
  • 重构日志模块并清理未使用的依赖 (d3ad49d)

Tests | 新增或优化测试用例

  • 为 buffer.Unbounded 添加基准测试 (08115d4)

0.3.3 (2023-11-28)

Features | 新特性

  • server.Server 默认开启数据包大小警告,可通过 server.WithPacketWarnSize 关闭或调整警告大小,默认为 1MB (173dd11)
  • str 包新增 SortJoin 函数,在执行 Join 前对字符串进行拼接 (844fb30)
  • survey 包支持对报告字段进行格式化处理 (ed5be97)
  • timer.Ticker 新增 Cron 函数,支持通过 Cron 表达式下发定时任务 (4117607)
  • 为 survey 包增加增量读取功能并改善错误处理 (9f27da2)
  • 增加了增量读取功能并改善了错误处理 (b11baa3)

Bug Fixes | 修复

  • 修复 activity 类型转换错误问题,增加案例目录 activity/internal/example (3a33947)

Docs | 文档优化

Performance Improvements | 性能优化

  • activity 包整体使用体验及性能优化,减少不必要的转换及反射,优化代码结构,优化可读性 (605a308)

0.3.2 (2023-11-23)

Features | 新特性

  • activity 并发安全优化 (7c2a825)
  • times 包新增 Line 时间线结构,提供了时间线性状态的实现 (a9c84ca)

Bug Fixes | 修复

  • server 启动日志包含错误的 Error 日志修复 (a3b4a9a)
  • 修复时间线 times.Line 部分逻辑 (193635c)

Code Refactoring | 重构

  • activity 包重构,整体优化使用体验,活动支持提前展示、及延长展示、持久化、数据保留周期、循环活动等 (4a41538)
  • ranking 包更名为 leaderboard,ranking.List 更名为 leaderboard.BinarySearch (2fe797e)

0.3.1 (2023-11-13)

Other | 其他更改

Features | 新特性

  • server 包新增机器人,可通过 server.NewBot 函数进行创建,机器人将模拟普通连接行为,适用于测试等场景 (4c092c0)
  • server 新增 Unique 异步消息,可用于避免相同标识的异步消息在未执行完毕前重复执行 (e2b7887)
  • super 新增 ConditionalRetryByExponentialBackoff 函数,支持可中断的退避指数算法重试 (274402e)

Bug Fixes | 修复

  • 修复配置导出工具无法忽略描述前缀为 # 的字段 (5c180de)

Docs | 文档优化

  • 优化配置导出工具部分文档描述 (30c0b3a)

0.3.0 (2023-11-11)

Features | 新特性

  • super 包新增 Hostname 函数获取主机名 (9157c6a)
  • super.LossCounter 支持打印 (01092fe)
  • times 包支持设置全局时间偏移 (f03dd4a)
  • times 包支持重置全局时间偏移量和获取当前全局时间偏移量 (707fc6c)
  • 修复配置导表工具数组处理异常的问题 (0f966c0)
  • 增强 server.RegConsoleCommandEvent 函数,支持 url 格式输入命令,并将命令解析为指令和参数 (d2654cf)

Bug Fixes | 修复

  • 更新配置导表工具数组处理异常的问题 (24ba13c)
  • 示例代码适配当前版本 (ab72920)

Code Refactoring | 重构

  • server 包重构及性能优化 (70f7a79)

0.2.9 (2023-11-09)

Other | 其他更改

  • xkeys seal encryption used fixed key for all encryption #6 (2079e95)

Features | 新特性

  • generic 包新增 Basic 类型 (d405cae)
  • lockstep 支持获取帧同步客户端数量 (589a424)
  • server 包支持获取到 HTTP 服务器的 Gin 示例 (6b2a753)
  • server.Server 支持使用 PushAsyncMessage 快捷发布异步消息 (0b77cc9)
  • super 包新增规则重试及退避指数重试 (d191dab)
  • survey 包的 Analyzer 分析器增加大量辅助函数 (85176f3)

Code Refactoring | 重构

  • #60 重构 game/task 包,支持更灵活的任务配置方式 (98c1f39)

0.2.8 (2023-10-31)

Other | 其他更改

  • gRPC-Go HTTP/2 Rapid Reset vulnerability、NATS.io: Adding accounts for just the system account adds auth bypass (e4d60d7)

Features | 新特性

  • server.Conn 支持获取连接打开时间及在线时长 (18a0b06)
  • survey 包新增 RecordBytes 函数,支持跳过格式化将数据直接写入,适用于转发至消息队列等场景 (f475aac)
  • survey.FileFlusher 将会在目录不存在时自行创建 (d2f982b)

Bug Fixes | 修复

  • lockstep.Lockstep 移除不必要的内容,修复 StartBroadcast 函数锁使用不正确的问题 (61d41e5)
  • 优化 exporter 配置导出器在没有前缀时会默认增加一个 "." 的问题 (fb5dacb)
  • 修复 #58 taskType 及事件被遗漏的问题 (9f88265)
  • 修复 timer.GetTicker 在获取到定时器后立刻使用造成的竞态问题 (a4bc828)

0.2.7 (2023-10-23)

Reverts | 回退

  • round 并发安全问题回撤(死锁问题) (6e11c5e)

Features | 新特性

  • concurrent 包 新增 NewMapPool 函数,支持创建 map 对象池 (74a6b54)
  • fight 包新增 TurnBased 回合制数据结构,用于替代 fight.Round。解决并发安全问题,并且支持按照速度进行回合切换 (378f855)
  • fight.TurnBased 支持监听回合变更以及刷新当前操作回合超时时间 (ba2f3af)
  • generic 包新增 IDR、IDW、IDRW 的泛型通用接口 (5259e07)
  • lockstep 支持丢弃帧缓存 (803dd4f)
  • server.Conn 支持在 WebSocket 模式下通过 GetWebsocketRequest 函数获取到请求 (42ab52b)
  • server.Conn 支持通过 GetServer 获取到服务器实例 (89e9c51)
  • super 包新增 LaunchTime 函数,支持获取程序启动时间 (20f62fe)
  • super 包新增 LossCounter,适用于统计代码段时间损耗,可通过 super.StartLossCounter 函数进行使用 (2b49a36)

Bug Fixes | 修复

  • server 包数据竞态问题优化 (cdbf388)
  • 修复 concurrent.Pool 可选项无法使用的问题 (64544e0)
  • 修复 lockstep.WithInitFrame 不生效的问题 (859e0a1)

Code Refactoring | 重构

  • cross 包服务器 id 更改为 string 类型 (9e33906)

Performance Improvements | 性能优化

  • lockstep 包优化同步逻辑,帧 id 由 int 更改为 int64 类型,优化数据竞态问题 (d3e5632)
  • lockstep 包优化帧命令逻辑,去除多余字段 (139fe42)
  • server 包异步消息不再执行额外 defer (b5b126e)

0.2.6 (2023-10-16)

Features | 新特性

  • super 包新增简单的权限控制器,可通过 super.NewPermission 函数进行创建 (9e00684)
  • 新增 space 包及 space.RoomMananger 结构体,提供了更便于使用的房间结构,用于取代 room 包 (c3538ab)

Bug Fixes | 修复

  • 修复 fight.Round 在回合内执行 ActionRefresh 等操作的并发问题 (2d1e8f1)

0.2.5 (2023-10-12)

Features | 新特性

  • server.Conn 支持通过 ViewData 函数查看只读的连接数据 (e60e0a7)
  • 优化 game.Player 的 Send 和 Close 函数与 server.Conn 同步 (f65a155)

Bug Fixes | 修复

  • HTTP/2 rapid reset can cause excessive work in net/http (14f542e)
  • random 包按权重产生结果更改为 int64 (433ba08)
  • 修复 poker.CardPile.Reset 函数导致牌组只有大小王的问题 (fb60065)
  • 修复 room 包在使用 AddSeat 函数时无法加入空缺位置的问题 (295aaeb)
  • 修复 room.Manager.GetRoom 函数的空指针问题 (039500b)

0.2.4 (2023-10-08)

Features | 新特性

  • 新增 xlsx 配置导出工具及模板,可手动编译后使用 (b622175)

Docs | 文档优化

  • README.md 增加配置道具工具相关说明 (9435ba5)
  • 部分注释优化 (83ab553)

0.2.3 (2023-10-07)

Features | 新特性

  • stream 新增 Maps,以及快捷开启流操作的函数 With... (cb3bd11)
  • super 包支持通过 MarshalToTargetWithJSON 将对象通过 JSON 序列化为目标对象 (2e4ab44)
  • timer 包新增部分获取 分、日、月、年 开始结束时间函数,以及快捷创建时间窗口时间段的函数 (05f0016)

Docs | 文档优化

  • README 增加流操作文档 (ba02fd4)

0.2.2 (2023-09-21)

Reverts | 回退

  • 设计不合理原因移除 storage 包 (d9b9392)

Features | 新特性

  • client.Run 支持传入 block 参数指定客户端以阻塞的模式运行 (534a7e9)
  • super 包增加 RetryForever 函数,支持永久重试直到成功 (13c5483)
  • 新增 memory 包,适用于游戏数据加载到内存中并周期性持久化 (ed008cf)

Tests | 新增或优化测试用例

  • 新增 times.CalcNextSecWithTime 示例代码 (149e6a2)

0.2.1 (2023-09-19)

Other | 其他更改

  • gateway 优化代码逻辑,适配 client.Client 变更 (0cc8fd8)

Features | 新特性

  • buffer.Unbounded 增加新的构造函数,支持省略 generateNil 函数,新增 IsClosed 函数检查无界缓冲区是否已经关闭 (e9bc9fb)
  • concurrent.Pool 新增静默模式可选项 WithPoolSilent,在该模式下当缓冲区大小不足时,将不再输出警告日志 (3ad1330)
  • random 包通过权重和概率随机产生一个成员支持返回产生成员的索引或 Key (782a1ad)
  • 新增 writeloop 包,内置了一个写循环的实现 (dd1acfd)

Bug Fixes | 修复

  • super 包优化 GetError 函数的空指针问题 (ab3926e)

Docs | 文档优化

  • 修复 server 在 WebSocket 模式下超时时间无效的问题 (1bc32e2)

Styling | 可读性优化

  • server 包为服务器启动添加 IP 信息,死锁检测的日志内容优化 (42465a8)

Code Refactoring | 重构

  • client 包采用无界缓冲区替代通过 chan 实现的写通道,移除消息堆积功能,优化代码逻辑 (2d9ffad)
  • server 移除 WithConnMessageChannelSize 可选项 (31c0e1b)

Performance Improvements | 性能优化

  • server.Conn 写循环更改为采用无界缓冲区的写入,优化整体逻辑 (551a3e5)

0.2.0 (2023-09-18)

Features | 新特性

  • buffer 包新增 Unbounded 实现 (d56c1df)
  • random 包新增 ProbabilitySlice 函数,用于基于概率产生一个结果,当概率总和小于 1 会发生未命中的情况,概率总和大于 1 将等比缩放至 1 (7c9bc46)
  • 新增 buffer 包,内置了一个环形缓冲区的实现 (12d1aba)

Bug Fixes | 修复

  • server 修复慢消息导致堆栈溢出的问题 (e95e1ba)
  • 修复 gnet 作为服务器核心关闭时导致的空指针问题 (2712f3b)

Docs | 文档优化

  • 优化文档内容兼容 WithShunt (00eaa36)

Code Refactoring | 重构

  • server 包重构消息通道,采用无界缓冲区替代原本的 chan,解决消息通道的缓冲区达到上限时造成永久阻塞的问题,移除 WithMessageChannelSize 可选项,修改 WithShunt 可选项不再需要 channelGenerator 参数 (810a9fd)

0.1.7 (2023-09-12)

Features | 新特性

  • router 包新增 Multistage 多级分类路由器,用于替代原有的 1~3 级路由器 (10cc443)
  • router.Multistage 支持通过可选项创建 (637ae27)
  • server 包新增 WithLimitLift 和 WithConnectionMessageChannelSize 函数,用于限制服务器最大生命周期及连接的消息写入通道大小 (064d434)
  • slice.Priority 优先级队列新增 Slice 函数,获取队列成员为切片类型 (30dbb14)
  • utils 下新增 sorts.Topological 拓扑排序函数 (7a5e2c1)

Bug Fixes | 修复

  • 修复 super.RegError 和 RegErrorRef 空指针问题 (82973dd)

Docs | 文档优化

Performance Improvements | 性能优化

  • server 包 websocket SetReadDeadline 优化 (dc3c7d2)

Tests | 新增或优化测试用例

  • slice 包新增部分单元测试 (4982e6d)

0.1.6 (2023-09-09)

Features | 新特性

  • survey 包 Report 新增 Avg、Count、Sum 等辅助计算函数 (8fd4e8f)

Bug Fixes | 修复

  • 修复 server.Conn 和 client.Client 连接关闭时发生的竞态问题 (0215c54)
  • 修复 server.Conn 连接关闭时发生的竞态问题 (674c38a)

Code Refactoring | 重构

  • 重构 super 包中的 error 部分,优化设计不合理的地方,支持动态注册错误码,支持并发读写 (de7b085)

Performance Improvements | 性能优化

  • 调整 super 包 error 部分为使用后再申请内存 (83b2800)

0.1.5 (2023-09-08)

Features | 新特性

  • slice 包新增 Zoom 函数, stream 包支持 Zoom 函数 (62ef35a)
  • stream.Slice 新增 Indexes 和 Map 函数 (5024022)
  • survey 分析记录支持通过 GetTime 函数获取记录时间 (3c3dc83)
  • 优化 slice 包 Filter 和 Map 函数,新增 Reduce 函数 (5ab9902)
  • 新增大量 slice 包和 hash 包的辅助函数 (d772409)

Bug Fixes | 修复

  • server 修复消息计数始终为1的问题 (6c882ed)
  • 修复 server 关闭服务器后,如果等待消息结束过程中,新消息将阻塞的问题 (19df61b)
  • 修复 survey.Analyzer 去重 BUG (a4ba3f1)

Styling | 可读性优化

  • 常量调整为从 1 开始 (5fb1dcb)

Code Refactoring | 重构

  • 优化 server 包消息日志,移除 server.Conn.Reuse 函数(不合理) (376ff77)
  • 重构 stream 包,提供更便捷的使用方式 (d72f185)

Performance Improvements | 性能优化

  • server 包连接关闭逻辑优化 (483ace2)

Tests | 新增或优化测试用例

  • 新增 stream.Slice 测试用例 (d9b68fc)

0.1.4 (2023-09-06)

Features | 新特性

  • server 包 Server 新增 RegMessageReadyEvent 函数 (04c40bf)
  • slice 包新增 Mapping 函数,支持将切片中的元素进行转换 (da68945)

Bug Fixes | 修复

  • client 包错误类型转换错误问题处理 (034ca17)
  • 修复 server 包 Server.RegConsoleCommandEvent 函数在无终端环境下导致 CPU 飙升的问题 (3e35e73)

Docs | 文档优化

  • README.md 增加部分示例 (e5bf7f3)

Code Refactoring | 重构

  • survey 包 AllWithPath 函数更改为 Analyze,新增分析报告,及分析器,提供方便的统计功能 (ac11e9e)

Performance Improvements | 性能优化

  • 优化 concurrent.Pool 池对象不够用的日志打印为 1 秒一次,而不是频繁打印 (989b9da)

Tests | 新增或优化测试用例

  • 优化 server 服务器并发测试用例 (4214ea4)

0.1.3 (2023-09-05)

Features | 新特性

  • server 包新增 Server.RegMessageExecBeforeEvent 函数,支持在消息执行前进行处理,适用于限流等场景 (0297c44)

Bug Fixes | 修复

  • 修复 server 包 RegMessageExecBeforeEvent 函数导致内存泄露的问题 (15a4918)
  • 修复宕机问题 (add1e4b)

0.1.2 (2023-09-01)

Features | 新特性

  • counter 包增加简单去重计数器 (0d76507)
  • gateway 支持连接与某一端点保持持久通讯,支持将端点的所有连接切换到另一端点 (6d5aa59)
  • gateway 新增 WithEndpointConnectionPoolSize 支持配置与端点建立连接的数量 (3ca6ed0)
  • super 包新增函数 IsNumber,用于判断一个值是否为数字类型 (518d47a)

Bug Fixes | 修复

  • server 包中 RegConsoleCommandEvent 函数空指针问题处理 (2ed52fc)
  • server 包修复服务器关闭后发送消息引起的空指针问题 (3062428)
  • survey 包修复 All 函数无用的返回参 (c6f8c19)
  • 修复 server 中 HTTP 服务器关闭时会引发空指针的问题 (8cd9979)

Code Refactoring | 重构

  • 优化 survey,移除 All 函数,新增 Flusher 接口,可自行实现其他持久化方式 (d9ba1bc)

Performance Improvements | 性能优化

  • 提高消息吞吐量,降低消息延迟 (1cbe8ec)

0.1.1 (2023-08-24)

Other | 其他更改

Features | 新特性

  • client 包增加 tcp 客户端 (a3bb100)
  • gateway.Endpoint 支持设置重连间隔 (cdfecb4)
  • survey.Reg 支持每次写入就持久化的策略 (3fc282a)

Bug Fixes | 修复

  • client 包内存溢出、死循环等问题处理 (08559d8)
  • 修复 tcp、udp、uds 等类型服务器数据包会额外增加一个长度的问题 (124635c)

Styling | 可读性优化

Code Refactoring | 重构

  • gateway 整体优化重构 (30e7894)
  • storage 包重构,优化整体设计 (0ad8a5c)

0.1.0 (2023-08-23)

Other | 其他更改

Features | 新特性

  • survey.R 增加更多的辅助函数 (4785c60)
  • 新增 survey 包,包含了运营日志的基本功能实现 (e962009)

Bug Fixes | 修复

Code Refactoring | 重构

  • 调整 server 数据包相关处理函数的接收参数不再为 server.Packet,同时移除 server.Packet (4850dd4)

Performance Improvements | 性能优化

Build System | 影响构建的修改

0.0.31 (2023-08-22)

Other | 其他更改

  • server 异步消息回调将不再使用 MessageTypeSystem,更改为 MessageTypeAsyncCallback (811e1bd)
  • 调整 log.Duration 和 log.DurationP 函数为 String 调用 (a1c15a2)

Reverts | 回退

  • 设计原因移除 report 包,采用 utils/counter (7cbe5c4)

Features | 新特性

  • concurrent.Pool 新增 EAC 函数,用于动态调整缓冲区大小。优化超出缓冲区大小警告日志,增加堆栈信息,用于定位高频点 (64ecd45)
  • hash 包增加 Clear 函数,用于清空 map (7f316d4)
  • server/client 新增 Unix Domain Socket 客户端 (3de1f6b)
  • slice 包新增 Filter 函数用于过滤切片 (ab19bd6)
  • super 包新增 StringToFloat64 函数 (89c32b4)
  • super 包新增大量 string 和 number 基本类型转换的辅助函数 (d37fbb7)

Bug Fixes | 修复

  • counter 包修复 mark key 无法被清理、重置的问题 (a31369a)
  • 优化 go1.21 以下项目的兼容性 (ab90fa8)
  • 优化 uds 客户端无法正常接收数据包的问题 (6792e22)
  • 修复非 gateway 数据包导致数组越界的问题 (5096e6f)

Code Refactoring | 重构

  • 调整事件函数名称 (dc76196)

0.0.30 (2023-08-21)

Features | 新特性

  • gateway 数据包支持像普通数据包一样处理,并且支持自定义端点健康评估函数 (3512570)
  • server 包支持设置注册事件的优先级 (3c6ce9c)
  • slice 包新增 GetValue 和 GetValueHandle 函数,用于获取特定索引的元素,如果索引超出范围将返回零值 (2dd5dd5)
  • slice 包新增优先级切片 (93e63b1)
  • 新增 counter 包,用于创建支持特定时间内去重的计数器 (1005d74)

Bug Fixes | 修复

  • 修复 count.Shadow 函数死锁问题 (34ca7f0)
  • 修复 websocket 客户端死锁问题 (7bf4e82)

0.0.29 (2023-08-17)

Features | 新特性

  • server 新增 NetworkNone 网络类型,该模式下不监听任何网络端口,仅开启消息队列,适用于纯粹的跨服服务器等情况 (dcfb3da)
  • server.Server 新增 HttpServer 函数,用于替代 HttpRouter (b87df07)
  • server.Server 的 HTTP 请求支持慢消息检测 (36a3333)

Bug Fixes | 修复

  • server 包优化 Shutdown 逻辑,修复服务器关闭时不会等待消息执行完毕的问题 (93c5f36)

0.0.28 (2023-08-16)

Features | 新特性

  • gateway 网关支持通过可选项自定义端点选择器 (e0f43c5)
  • server 目录中新增 client 包,提供了 Websocket 客户端实例 (322938a)
  • server 目录中新增 gateway 包,提供了基本的 Websocket 网关实现 (5ff74b6)
  • server.Server 新增 RegConnectionPacketPreprocessEvent 函数用于对数据包进行预处理操作 (b3e4bb6)
  • times 包增加部分时间处理函数 (157b6b5)

Bug Fixes | 修复

  • 修复 timer.Ticker.Loop 函数首次触发时会触发两次的问题 (2bd6aa5)

0.0.27 (2023-08-14)

Features | 新特性

  • ranking.List 新增支持默认值的获取排名和分数的函数 (57ee7ff)
  • sole 包新增 Once 结构体,用于数据取值去重 (0f31173)

Bug Fixes | 修复

  • 修复配置显示声明的字符串时,导出的数据包含双引号的问题 (31cd79c)

0.0.26 (2023-08-10)

Features | 新特性

  • arrangement 新增冲突、冲突处理函数、约束处理函数 (84f36ea)
  • arrangement.Engine 新增更多的辅助函数 (822ffc7)
  • server 包新增 HTTP 包装器 (cec7e5b)
  • 新增 reflects 包,包含反射相关辅助函数 (340b00e)

Bug Fixes | 修复

  • http 包装器 group 修复 (dbf7ed7)

Build System | 影响构建的修改

  • 升级 go 至 1.21 版本 (9596320)

0.0.25 (2023-08-03)

Features | 新特性

  • combination 包新增 Validator 校验器,用于校验组合是否匹配,取代 poker.Rule (f6873bd)
  • combination 包新增 WithValidatorHandleNCarryM、WithValidatorHandleNCarryIndependentM 函数 (87a1ca9)
  • room.Helper 支持通过 BroadcastExcept 向被排除表达式命中外的玩家广播消息 (0804508)
  • 新增 arrangement 包,用于针对多条数据进行合理编排的数据结构 (1f5f95a)

Bug Fixes | 修复

  • combination.WithValidatorHandleNCarryM 修复 M 允许类型不同的问题 (0db1e5c)
  • room.Helper.BroadcastExcept 函数返回值修复 (faac7b2)

Docs | 文档优化

  • poker 包过时标记 (553c436)
  • README.md 及 CONTRIBUTING.md 完善 (7cfdbb1)

0.0.24 (2023-08-02)

Features | 新特性

  • fight.Round 新增操作刷新事件 (d96ed58)
  • fight.Round 新增获取当前操作超时时间的函数 (060fb05)
  • random 包新增 Dice 掷骰子和 Probability 概率函数 (d9d0392)
  • room.Helper 新增获取玩家切片、广播所有玩家、广播在座玩家的函数 (ab180f3)
  • server.Server 支持通过 WithShunt 函数对服务器消息进行分流 (c92f16c)
  • server.Server 新增分流通道创建和关闭事件 (b9d9533)
  • 新增 deck 包,用于对牌堆、麻将牌堆、一组数据等情况的管理 (ace17a6)

Bug Fixes | 修复

  • configuration 包字段类型转换修复 (aef7740)
  • 修复 room 包中通过 Manager 获取 Helper 时,当传入的 room 为空依旧会返回不为空指针的 Helper 问题 (e8c2cf2)

Code Refactoring | 重构

  • moving2d 移动到 game 包中 (e3224d0)
  • 移除 component 包,lockstep 迁移至 server/lockstep (1b8d041)

Tests | 新增或优化测试用例

  • fight.Round 单元测试函数名变更 (ffd8d04)

0.0.23 (2023-08-01)

Other | 其他更改

  • 优化 combination 包命名,删除无用文件 (57936b2)

Reverts | 回退

  • 移除 poker 包的 matcher,改为使用 combination 包 (8b92921)

Features | 新特性

  • fight 包的 Round 新增操作超时事件,优化事件逻辑 (9198faa)
  • maths 包支持奇偶数判断 (ac43963)
  • room 包新增房间创建事件 (87c6695)
  • 新增 combination 包,用于数组组合筛选(抽离自 poker 包) (48d9c11)
  • 新增 fight 包,提供了回合制战斗的功能实现 (df8f6fc)

Bug Fixes | 修复

  • 修复 server 异步消息的 callback 的并发问题 (1297ae7)
  • 修复泛型对象 player 不能判断 nil 的表达式错误 (4dddd14)
  • 修复牌堆重置时不会重置 guid 的问题 (39ccad4)
  • 状态机 fsm 包名修复,优化注释 (cee067e)
  • 状态机 State 名称修复 (de76411)

Docs | 文档优化

  • server.PushAsyncMessage 注意事项补全 (2482d2e)

Code Refactoring | 重构

  • fsm 包状态机事件优化,新增部分获取状态机信息的函数 (0fad041)

Performance Improvements | 性能优化

  • 优化 combination 包 NCarryM 性能 (abd1db5)
  • 优化 slice.Combinations 效率 (03028b1)

0.0.22 (2023-07-28)

Features | 新特性

  • maths 包新增支持 int64 的数字合并函数 (a6fb7fb)
  • room 支持获取座位上的玩家数量 (24f54a1)
  • super 包支持使用 Convert 强制转换数据类型 (867d1ec)
  • times 包新增 SystemNewDay 和 OffsetTimeNewDay 事件 (2a0c5b8)

Bug Fixes | 修复

  • fms 包迁移问题处理 (996f5af)

Code Refactoring | 重构

  • room 包移除大量 error 返回,增加易于房间操作 Helper 数据结构,可通过 Manager.GetHelper 和 room.NewHelper 获取 (3dec407)

Tests | 新增或优化测试用例

0.0.21 (2023-07-27)

Reverts | 回退

  • 移除 attrs,设计不合理 (87f26dd)
  • 移除 gameplay,设计不合理 (41ea022)
  • 移除 terrain 和 world,设计不合理 (361e269)

Features | 新特性

  • generic 包支持更多的空指针判断函数 (d06c840)
  • hash 包新增 Set 数据结构 (9fcc75e)
  • maths 包新增 CountDigits 和 GetDigitValue 函数,用于计算一个数字的位数和获取特定位数上的值 (3f94f38)
  • room 包添加更多的事件,添加座位号支持 (c8f181f)
  • server 异步消息支持将 callback 设置为 nil (b63975e)
  • server.Server 事件消息添加 mark 标记,方便问题定位 (471ee48)
  • server.Server 新增 ConnectionOpenedAfterEvent (8dde18a)
  • server.Server 新增对连接写入事件前的处理函数 (5e26467)
  • slice 包新增 CombinationsPari 函数,用于从给定的两个数组中按照特定数量得到所有组合后,再将两个数组的组合进行组合 (d26ef3a)
  • super 包支持无错的 json 序列化 (11ad997)
  • 房间管理器实现 (45c855a)

Bug Fixes | 修复

  • 修复 room.NewManager 没有初始化 rp 字段的问题 (5c3c959)

Docs | 文档优化

Code Refactoring | 重构

  • kcrypto 包更名为 crypto,与目录名对应 (1ae14f0)
  • RankingList 更名为 List,并且移动至 ranking 包中 (ed8ee4a)
  • 从 builtin 包中单独抽离到 aoi 包,更名为 TwoDimensional (bca8a98)
  • 状态机从 builtin 包中单独抽离到 fsm 包 (6fb24da)
  • 移除原有的 builtin 中的各类 room 实现 (ee18934)

0.0.20 (2023-07-25)

Reverts | 回退

  • 移除 storage 包,不合理的设计 (3e956b6)

Features | 新特性

  • super 包支持注册第三方错误,将第三方错误转换为特定错误代码和信息 (2cbffbf)
  • super 包添加 []byte、string 零拷贝转换函数 (506e0f2)

Code Refactoring | 重构

  • map 移除适配 (d446ff1)
  • storage 中的 Delete 要求返回 error (a43fb4f)
  • storage 包重新实现 (b6f28dd)
  • storage 要求 Load 等函数返回错误信息 (0d1a985)
  • 优化 solo.guid 的使用,命名空间需要注册 (6238883)
  • 去除 storage 中的 errHandle 参数 (3befe64)
  • 移除分段锁map实现及 hash.Map、hash.ReadonlyMap 接口,移除 asynchronous 包,同步包更名为 concurrent (d0d2087)
  • 重构 poker 包为全泛型包,支持通过 poker.Matcher 根据一组扑克牌选出最佳组合 (d71d843)

0.0.19 (2023-07-20)

Bug Fixes | 修复

  • 修复 onStop 无法等待逻辑执行完成的问题 (037c9b7)

0.0.18 (2023-07-19)

Features | 新特性

  • builtin.Player 可以通过 GetConn 函数获取到网络连接 (31ad0ee)
  • storage 添加内置实现的文件存储器,可以通过 storages 包进行使用 (c447c8a)
  • 支持使用 super.RegError 函数为错误注册全局错误码,使用 super.GetErrorCode 根据错误获取全局错误码 (1dcbd0a)
  • 支持通过 timer.CalcNextTimeWithRefer 计算下一个整点时间 (8835e4a)
  • 新增 storage 支持数据持久化 (f59354d)

Tests | 新增或优化测试用例

  • 新增 GlobalDataFileStorage 和 IndexDataFileStorage 的测试用例 (4378aa0)

0.0.17 (2023-07-18)

Bug Fixes | 修复

  • 修复主键为空的数据被导出的问题 (ab0a7cb)

Features | 新特性

  • 增加部分字符串转换函数 (28c6097)
  • 通过 golang 模板生成的配置结构代码支持通过 Sync 函数执行安全的配置操作,避免配置被刷新造成的异常 (8bbd495)

0.0.16 (2023-07-17)

Bug Fixes | 修复

  • 修复 server.Server 部分事件中发生 panic 导致程序退出的问题 (0215d9f)

Styling | 可读性优化

  • 去除部分无用字段,优化整体可读性 (c1e3c65)

Other | 其他更改

  • pce.ce 包提供内置的 xlsx 配置表 (91b2b52)
  • 日志字段调用由 zap.Field 更改为 log.Field (8e2b4eb)
  • 配置导出 Golang 结构体注释优化 (9349e3c)
  • 配置导表优化 (130869a)

Features | 新特性

  • super 包支持 match 控制函数 (25ed712)
  • super 包支持使用 super.GoFormat 函数格式化 go 文件 (3ee638f)
  • 修复 server.PushAsyncMessage 无法正确调用回调函数的问题 (1b9ec9f)
  • 重构 config 和 configexport 包 (7e7a504)

0.0.15 (2023-07-14)

Bug Fixes | 修复

  • 修复 log 无法正确打印 Caller 的问题 (349ec42)

Other | 其他更改

Features | 新特性

  • 新增 steram 包,支持 map 和 slice 的链式操作 (10fcb54)

0.0.14 (2023-07-13)

Features | 新特性

  • slice 包支持获取数组的部分数据 (c211d62)
  • 支持通过 file.FilePaths 获取目录下所有文件,通过 file.LineCount 统计文件行数 (0c5ff89)
  • 支持通过 server.NewPacket、 server.NewWSPacket、server.NewPacketString、server.NewWSPacketString 函数快捷创建数据包 (26993d9)
  • 支持通过 server.SetMessagePacketVisualizer 函数设置服务器数据包消息可视化函数 (676b542)

Performance Improvements | 性能优化

  • 调整 server.DefaultMessageChannelSize 为 65535,优化默认内存占用 (3e9d56e)

0.0.13 (2023-07-12)

Performance Improvements | 性能优化

  • 优化代码结构,去除无用代码,去除重复代码 (47b8a33)

Other | 其他更改

  • 修改 server.Server 慢消息检测的异步消息判定条件为 1 秒 (8917326)

Code Refactoring | 重构

  • log 包重构,优化使用方式 (98234e5)
  • 任务 task 包重构 (a23e48b)

Features | 新特性

  • str 包增加内置字符 Dunno、CenterDot、Dot、Slash 和其 []byte 形式 (94147e8)
  • 可使用 super.NewStackGo 创建用于对上一个协程堆栈进行收集的收集器 (a4a27ea)
  • 支持通过 super.StackGO 进行跨协程同步运行堆栈抓取 (b5a4bc9)

Bug Fixes | 修复

  • 修复服务器消息报错不打印堆栈信息的问题 (aa39d39)

0.0.12 (2023-07-11)

Code Refactoring | 重构

  • server.WithPprof 名称修改为 server.WithPProf (50ab92e)

Bug Fixes | 修复

  • 修复配置导出 Go 代码注释错误问题 (9f2242b)

Styling | 可读性优化

  • 优化 server 包代码可读性 (74c8f21)

Docs | 文档优化

Features | 新特性

  • server 包 websocket 服务器支持压缩 (6962cf4)
  • server.Server 将记录在线的连接信息,可获取到在线连接和计数等 (8368fe0)

0.0.11 (2023-07-10)

Bug Fixes | 修复

  • 修复 Multiple 模式下启动服务器 listen 有时无法打印的问题 (d972dc8)
  • 修复 server.Server 关闭时线程池未释放的问题 (7228a07)
  • 修复异步慢消息追踪不生效的问题 (7b8af05)
  • 修复配置字段描述换行的情况下导出的 Go 代码编译报错问题 (e676982)

Performance Improvements | 性能优化

  • 调整 server.WithBufferSize 默认值 (1ad6577)

Features | 新特性

  • 增加任务功能 (bdeaa5a)
  • 支持对 HTTP 服务器通过 server.WithPprof 开启 pprof (53e91d1)
  • 支持对消息增加 mark 标记,可在执行 Message.String() 函数时进行展现 (1e6974a)

0.0.10 (2023-07-07)

Tests | 新增或优化测试用例

Code Refactoring | 重构

  • 优化 server 消息类型,合并 Websocket 数据包监听到统一的 RegConnectionReceivePacketEvent 中 (8b90307)
  • 服务器支持异步消息类型、死锁阻塞、异步慢消息检测 (1a2c1df)
  • 私有化服务器 PushMessage 函数,移除 PushCrossMessage 函数,改为使用 server.PushXXXMessage 函数 (6d27433)
  • 移除服务器多核和分流模式的可选项 (7e67775)

0.0.9 (2023-07-06)

Bug Fixes | 修复

  • 修复导出配置 JSON 特殊字符被转义的问题 (193763e)
  • 修复请求成功 server.Conn 的 callback 不调用的问题 (8e3325f)
  • 修复释放定时器后可能造成空指针的问题 (9f27102)

Other | 其他更改

  • 移除 server.Server.OnConnectionClosedEvent 和 server.Server.OnConnectionOpenedEvent 的日志 (7065448)

Features | 新特性

  • 支持通过 hash 包随机的读取 map 数据 (9a35486)
  • 支持通过 server.Server.RegStopEvent() 函数注册服务器关闭事件 (18b9598)

0.0.8 (2023-07-05)

Styling | 可读性优化

  • 导出日志增加已导出的表信息 (741da79)

Performance Improvements | 性能优化

  • 移除向连接发送数据时的空包处理 (e0571c7)

Code Refactoring | 重构

  • 由于设计不合理,移除排行榜中的 CompetitorIncrease 函数 (0f125d4)

Tests | 新增或优化测试用例

  • 新增 ranking_list 测试用例,调整 aoi2d_test.go 的 packge 为 builtin_test (b5b428d)

Docs | 文档优化

  • 排行榜 GetRank 函数增加注释,提示排名从 0 开始 (1001d50)

Other | 其他更改

  • 在 README.md 中添加 JetBrains OS licenses 信息 (b234568)

Bug Fixes | 修复

  • 配置加载后无限刷新修复 (6634aa6)

Features | 新特性

  • server.New 支持通过 server.WithWebsocketReadDeadline 设置超时时间 (2513714)
  • 可通过 slice.Merge 合并多个切片数据 (ebfdd7c)
  • 支持在重连等情况时使用 server.Conn.Reuse 函数重用连接数据 (6144dd6)
  • 支持对 server.Conn 写入时调用带有 Callback 的写入函数 (4717566)
  • 新增重试函数及两个关于 func 执行的辅助函数 (ee87612)

0.0.7 (2023-07-05)

Features | 新特性

  • 导表工具导出的 Golang 代码将携带配置名称签名 (8576d0f)

Code Refactoring | 重构

  • 日志设置生产模式和开发模式写入文件支持开关 (c6073a9)
  • 重构 server.ConnectionClosedEventHandle,修复部分问题 (e0c63d5)

Bug Fixes | 修复

  • 修复 server.Multiple 关闭服务器空指针异常 (1136af4)
  • 配置导表部分未填写的字段导致整个表被截断问题处理 (65aac67)

0.0.6 (2023-07-03)

Features | 新特性

  • 日志 log 包支持更多设置 (83e0675)

0.0.5 (2023-07-03)

Other | 其他更改

  • 删除 net 包中的不合理函数 (f22bf5b)

Features | 新特性

  • 为 slice 包添加更多的辅助函数 (d4d11f2)
  • 配置导出生成的 Go 代码支持获取所有线上配置的集合 (68cb5f2)

0.0.4 (2023-07-01)

Bug Fixes | 修复

  • 多服务器情况下日志错乱及无法正常 Shuntdown 问题修复 (67616b2)

Tests | 新增或优化测试用例

  • components.Moving2D 增加示例 (01bafe6)
  • components.Moving2D 测试用例优化 (49bc143)

Features | 新特性

  • components.Moving2D 支持停止移动事件注册 (f67a66d)
  • 对 poker.Rule 提供功能的辅助函数 (0172c67)
  • 服务器支持通过 server.WithDiversion 可选项对数据包消息进行分流处理 (73cefc9)

Code Refactoring | 重构

  • 导表工具重构,增加部分特性,修复部分问题 (afdda79)

0.0.3 (2023-06-30)

Bug Fixes | 修复

  • 修复 file.ReadOnce 读文件错误 (b0ae569)

Features | 新特性

  • generic 包支持检查泛型类型是否为空指针 (6023f59)
  • maths 包支持比较一组数是否连续 (0ab38c7)
  • timer.Ticker 支持附加标记信息 (db51edf)
  • 增加时间段 times.Period 数据结构 (a6ca8a9)

Code Refactoring | 重构

  • 重构 poker 包设计,移除 Poker 结构体,以 Rule 结构体进行取代 (d1b7699)
  • 重构游戏活动实现 (390e8e7)

Tests | 新增或优化测试用例

0.0.2 (2023-06-27)

Features | 新特性

  • 增加时间转换辅助函数 (05a328e)
  • 增加更多的时间处理函数 (2127978)
  • 支持获取全局偏移时间 (77e7d46)
  • 新增全局偏移时间 (6c4f59f)
  • 新增游戏活动功能支持 (83531b6)

Bug Fixes | 修复

  • 修复使用 int 和 math.MaxUint 比较导致溢出的问题 (a4e9b5f)

0.0.1 (2023-06-26)

Features | 新特性

  • 支持通过 server 包支持快速创建 TCP、UDP、Websocket、UnixSock、HTTP、GRPC、KCP 服务器
  • 支持通过 router 包创建最多支持三级的路由器
  • 支持通过 cross 对 server 创建的服务器提供跨服支持
  • 通过 configexport 包提供了针对策划及开发人员的配置表模板及导表工具,支持导出 json 和 go 配置文件
  • 支持通过 notify 包快速实现通知功能,默认支持飞书群聊机器人通知
  • 组件 component 包中提供了帧同步组件的实现及 2D 移动组件的实现
  • 支持通过 report 包实现快捷的数据上报功能
  • utils 包中提供了大量常用的辅助函数
    • asynchronization 包中提供了实现了 hash.Map 的非并发安全 map 数据结构
    • compress 包中提供了 gzip 压缩与解压缩的算法
    • crypto 包中支持对数据进行 base64、crc、md5、sha1、sha256 的编码解码函数
    • file 包中提供了常用的文件操作函数
    • generic 包中提供了常见的泛型约束
    • geometry 包中提供了几何相关的处理函数,包括线、形状、点等内容
      • astar 包中提供了 A* 算法的实现
      • dp 包中提供了基于二维数组的分布链接的机制,可以快速查找与给定成员具有相同特征且位置紧邻的其他成员
      • matrix 包中提供了一个简单的二维矩阵实现
      • navmesh 包提供了基于 astar 的网格寻路功能
    • hash 包提供了常用了 hashmap 转换、接口等功能
    • huge 包提供了 int 类型的大整数实现
    • log 包中提供了基于 zap 的默认日志组件
    • maths 包中提供了常用的数学处理函数
    • network 包中提供了常用的网络辅助函数
    • offset 包中提供了带偏移的时间实现
    • random 包中提供了常用的随机函数,包括随机 hash、名称等
    • runtimes 包中提供了常用的运行时辅助函数
    • slice 包中提供了基于切片的辅助函数
    • sole 包中提供了 guid 和 雪花id 的实现
    • str 包中提供了常用的字符串处理函数
    • super 包中提供了 if 的三目表达式函数
    • synchronization 包中提供了并发安全的数据结构
    • timer 包中提供了定时器组件
    • times 包中提供了常用的时间处理函数