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/

作者

amano

发布于

2026-01-18

更新于

2026-08-04

许可协议

评论