TOS 开发周记 15:WebSocket 事件收口,战斗细节补齐
本文根据 2026-01-12 至 2026-01-18 的 Git 提交回补。
换掉后端语言与联机层之后,这一周主要是在新链路上把旧功能重新对齐。提交主题集中在事件、战斗与日志,很多改动都成对出现在客户端和后端。
先让两端说同一种话
后端调整服务端事件,并把事件定义收拢到 internal/ws/events.go;客户端也统一 WebSocket 事件入口。地图消息处理、连接层和场景脚本随之简化,避免同一类消息在不同位置用不同名字或分支处理。
双方还分别加入文件日志,覆盖 WebSocket 消息与怪物 worker。它们至少为迁移期排查事件流提供了持久记录;至于实际定位了哪些问题,提交本身没有留下足够信息,我不做延伸判断。
战斗判定回到服务端
攻击距离判断在后端修正,客户端随即移除一部分本地判断,改为接受服务端结果。随后又处理怪物死亡、物品掉落和攻击效果:后端维护怪物状态,客户端根据事件移除或更新对象,并播放攻击反馈。
地图逻辑也进一步从 handler 移进 worker。与此同时,客户端修正 tile 渲染顺序,说明实时数据正确只是第一步,场景中的绘制层级仍需要单独整理。
小结
这周没有明显扩张玩法边界,而是在偿还迁移成本。统一事件、补日志、把攻击判定交还服务端,再修怪物死亡与掉落表现,这些工作让 Go 后端与原生 WebSocket 客户端重新形成一条可理解的数据链。
提交记录
| 日期 | 仓库 | 提交 | 原始说明 |
|---|---|---|---|
| 2026-01-12 | 后端 | 4bdefe3 |
fix |
| 2026-01-12 | 后端 | fe3f0fa |
fix: poort performance |
| 2026-01-12 | 客户端 | 2429ae3 |
fix |
| 2026-01-13 | 后端 | 22de140 |
fix: attack distance judge |
| 2026-01-13 | 后端 | 6d3eee7 |
feat: align with server events |
| 2026-01-13 | 后端 | 772c2f6 |
feat: record logs into files |
| 2026-01-13 | 客户端 | 75a147d |
feat: log messages in files |
| 2026-01-13 | 客户端 | bbe749c |
fix: judge attch via server |
| 2026-01-14 | 后端 | 41a3cdd |
fix: monster death |
| 2026-01-14 | 后端 | 471534e |
feat: compleate remainging TODOs |
| 2026-01-14 | 后端 | df248af |
tidy: unify events |
| 2026-01-14 | 客户端 | 2602dd6 |
tmp |
| 2026-01-14 | 客户端 | 2db52e3 |
fix: render tiles order |
| 2026-01-14 | 客户端 | 7ff55d2 |
feat: unify all the client events |
| 2026-01-15 | 后端 | 77cff3a |
tidy: move map logic to worker |
| 2026-01-15 | 后端 | 95e924d |
tmp |
| 2026-01-16 | 后端 | 979f69b |
tmp |
| 2026-01-16 | 客户端 | 2f10138 |
fix item drop |
| 2026-01-16 | 客户端 | f4861c1 |
feat: add effect for attack |
TOS 开发周记 15:WebSocket 事件收口,战斗细节补齐
https://blog.util.online/2026/01/18/tos-weekly-history/2026-01-12-tos-weekly-15/