Commit Graph

317 Commits

Author SHA1 Message Date
kercylan98
a2a9199d41 test: 完善 dispatcher.Dispatcher 注释及测试用例 2024-01-12 13:48:57 +08:00
kercylan98
161fbfe4e3 refactor: 迁移 concurrent.Pool 至 hub.ObjectPool,并将 concurrent 包更名为 hub 2024-01-12 12:34:09 +08:00
kercylan98
e3d966e215 test: collection 包完善测试用例 2024-01-11 18:46:10 +08:00
kercylan98
66d903474d refactor: 移除 slice 包和 hash 包,新增 listings、mappings 包存放数组、切片、映射等数据结构,原 slice、hash 包中的工具函数迁移至 collection 包,与 sher 包合并并移除 sher 包。完善 collection 包测试用例 2024-01-11 17:50:04 +08:00
kercylan98
3408c212d0 refactor: 重构 server 包分流渠道设计,修复部分问题
- 使用 RingBuffer 实现分流渠道的无界缓冲区,修复分流渠道被关闭后,未处理完成的消息将会被丢弃的问题;
- 移除 server.WithDisableAutomaticReleaseShunt 可选项,分流渠道将在消息处理完毕且没有连接使用时自行释放;
2024-01-08 19:11:17 +08:00
kercylan98
3402c83fd4 fix: 修复 server 包部分问题,修复 log 包在 init 函数调用可能产生的空指针问题 2024-01-08 19:11:16 +08:00
kercylan98
b633f1af9f fix: 修复 server.Service 初始化的 for 循环指针问题 2024-01-05 09:32:44 +08:00
kercylan98
8eb9965839 other: 优化 server 包 http 包装器使用体验 2024-01-05 09:32:14 +08:00
kercylan98
2ff360c48c feat: sher 包增加部分转换和去重相关函数 2024-01-04 10:39:34 +08:00
kercylan98
71a3b34304 refactor: 重构 log 包,由 zap 改为 slog 2024-01-05 00:18:32 +08:00
kercylan98
31c68e42b7 feat: 修复 HTTP 服务器慢消息空指针问题 2024-01-02 17:28:45 +08:00
kercylan98
80f38ffe9c fix: 修复 server.hub 广播时未解锁的问题,优化处理逻辑 2023-12-29 12:15:29 +08:00
kercylan98
472fdc3a18 other: server 包部分内容可读性优化,增加健壮度 2023-12-29 12:02:12 +08:00
kercylan98
5e5fe8acca perf: 优化 server.Server 连接管理机制,优化 GetOnlineCount、GetOnlineBotCount 性能 2023-12-29 10:34:18 +08:00
kercylan98
bdbcc1bb35 perf: client 包由无界缓冲区调整为基于 chan 实现的缓冲区,新增 RunByBufferSize 函数支持以指定缓冲区大小运行 2023-12-27 10:04:45 +08:00
kercylan98
26aa2d9ff8 fix: 修改 ShowServersInfo 函数可见性,修复服务器地址打印的指针问题 2023-12-26 17:23:28 +08:00
kercylan98
b39625c0cb fix: 修复 server.WithDispatcherBufferSize 过小的情况下,在消息中发布新消息导致永久阻塞的问题 2023-12-26 10:57:53 +08:00
kercylan98
de43f53131 fix: 修复 server 中分流定时消息无法命中分流渠道的问题 2023-12-25 19:14:27 +08:00
kercylan98
aaa007939f other: 移除无用的 server.ConnReadonly 2023-12-25 17:46:42 +08:00
kercylan98
af0a5a1c25 style: 优化 server 包代码可读性 2023-12-25 17:40:55 +08:00
kercylan98
7ee4b893cd feat: server 包新增 WithWebsocketConnInitializer 函数,支持对 websocket 连接打开后进行初始化设置 2023-12-25 15:17:03 +08:00
kercylan98
2639412f96 other: 优化 server 包中 websocket 消息类型常量的指向 2023-12-25 15:03:22 +08:00
kercylan98
e960d07f49 feat: server 包新增 WithWebsocketUpgrade 函数,支持自定义 websocket.Upgrader 2023-12-25 14:40:02 +08:00
kercylan98
bdf4a237df feat: server 包新增 service 模式的加载函数 server.BindService 2023-12-25 12:11:04 +08:00
kercylan98
aebdb53bc6 docs: 增加 lockstep 包 README.md 文档 2023-12-25 11:23:45 +08:00
kercylan98
610ee0d649 docs: 补充 writeloop 的 README.md 相关的 Channel 部分 2023-12-25 11:12:24 +08:00
kercylan98
d9ef3474a7 feat: server 包新增 WithDisableAutomaticReleaseShunt 可选项,可禁止分流渠道自动释放。增加 ReleaseShunt、HasShunt、GetShuntNum 等函数。优化系统分流渠道将不再能够被释放 2023-12-25 11:01:41 +08:00
kercylan98
ceffa2e46f fix: lockstep 定时器导致空指针问题处理 2023-12-23 20:02:34 +08:00
kercylan98
d27fa7c246 perf: 更改 server 和 conn 的消息实现为 channel 2023-12-23 19:05:39 +08:00
kercylan98
4b85ceaf13 refactor: writeloop.WriteLoop 更名为 Unbounded,新增基于 chan 实现的 WriteLoop 2023-12-23 18:27:40 +08:00
kercylan98
eb28d42bf1 refactor: server.Server 兼容新的 concurrent.Pool 和 buffer.Unbounded 2023-12-23 18:15:34 +08:00
kercylan98
f52d73e20e test: writeloop 包增加测试用例 2023-12-23 18:11:19 +08:00
kercylan98
307e500b82 docs: 增加 writeloop 文档 2023-12-23 18:10:57 +08:00
kercylan98
32576fbc79 other: 移除 writeloop 的 defer recover 行为,发生未处理错误将不再 panic,更改为输出 Error 日志 2023-12-23 18:10:40 +08:00
kercylan98
9d9f7a3854 docs: 增加 space 包 README.md 文档,优化 room 相关内容可读性 2023-12-23 10:59:20 +08:00
kercylan98
05aeed05a1 feat: server 包增加消息统计相关函数 2023-12-22 16:57:00 +08:00
kercylan98
fde6d52c60 refactor: 移除过时的 server.NewHttpWrapper 函数、server.Server.HttpServer 函数当需要使用 Gin 相关功能时不再需要通过 Gin 函数获取 2023-12-22 10:17:07 +08:00
kercylan98
c4e2034bef refactor: 移除 router 包中已过时的 Level1Router、Level2Router、Level3Router,可使用 router.Multistage 进行替代 2023-12-22 10:10:31 +08:00
kercylan98
4f3b4eb1d5 other: 修改 server.WithTicker 将不再使用标准池的定时器,而是自行维护定时器池 2023-12-21 14:43:59 +08:00
kercylan98
2ff7db96d2 other: 优化 server 包消息分发时对于 cancel 的处理逻辑 2023-12-21 14:09:17 +08:00
kercylan98
9038bfc2b5 perf: 移除 lockstep 对 timer.Ticket 的依赖,更改为 time.Ticker 实现,减少不必要的资源占用 2023-12-21 14:08:21 +08:00
kercylan98
508e30fb5b fix: 修复 timer.Ticker 和 lockstep 包存在的内存泄漏问题 2023-12-20 16:57:54 +08:00
kercylan98
4d72e8cbcb fix: 修复 server 包未使用 KCP 服务器时会有额外的定时器损耗的问题 2023-12-20 12:21:43 +08:00
kercylan98
7e09229330 fix: 修复 server.Server 在使用 UseShunt 函数时由于未记录当前分发器导致的内存泄漏问题 2023-12-20 11:24:51 +08:00
kercylan98
e60017c0eb other: 优化 server 包消息分发 cancel 处理逻辑 2023-12-20 10:46:01 +08:00
kercylan98
82ecb98397 other: 优化 server 包部分 error 的处理方式 2023-12-20 09:48:03 +08:00
kercylan98
ba24b09c71 style: 移除 server 慢消息无意义的堆栈信息,优化消息的 String 函数返回的不再是简单的消息类型 2023-12-19 16:00:45 +08:00
kercylan98
b4ade2c003 feat: server 新增 DeadlockDetectEvent,以便于发生疑似死锁时刻能够执行通知等行为 2023-12-09 13:53:16 +08:00
kercylan98
dc557a06d4 refactor: 优化及重构 server 包关于 WebSocket 的消息类型和消息分流部分内容
- 优化 server 包中 WebSocket 服务器默认响应的消息类型与发信方不同步的问题;
- 移除 server.WithShunt
函数,调整为通过 server.Server.UseShunt 来动态分流渠道,例如可以将用户连接的渠道在用户自身渠道或游戏房间渠道来回切换;
2023-12-01 16:35:27 +08:00
kercylan98
6922999039 docs: 修正 @kuchaguangjie 在 #67 提到的 README.md 服务器定时器示例错误、补充 WithTicker 函数注释 2023-11-30 11:14:16 +08:00