TOS 开发周记 14:后端转向 Go,客户端改用原生 WebSocket

本文根据 2026-01-05 至 2026-01-11 的 Git 提交回补。

这一周几乎所有提交都集中在 1 月 11 日,却是项目结构变化最大的一周之一:后端开始用 Go 重建已有能力,客户端也从 Colyseus 接入改成直接使用 WebSocket。

后端开始迁移到 Go

Go 版本先搭起配置、数据库、鉴权、中间件、HTTP 路由和 WebSocket hub,随后补入背包、城市、堡垒、好友、怪物、队伍、tile 等 handler 与 service,也加入怪物 worker 和 worker pool。Swagger 文档则跟着接口一起建立。

这里更像一次迁移中的并行实现,而不是简单替换语言。旧 TypeScript 目录仍在历史提交中,新 Go 代码需要重新覆盖原有的地图生成、服务与实时消息能力。后面的几个提交集中修复重构问题与生成逻辑,也说明这套新结构仍处于快速对齐阶段。

客户端绕开 Colyseus

Godot 端新增 websocket_client.gd 和独立的消息处理器,并修改登录、主场景、地图、玩家管理等入口。客户端不再依赖 Colyseus 的房间封装,而是直接面对 WebSocket 连接与事件。

这和后端的 Go WebSocket hub 是同一件事的两面:服务端需要明确消息格式、连接与广播逻辑,客户端则要自己负责连接状态、发送请求和分发事件。紧随其后的 bug 修复主要落在 EventBus、API 客户端和地图场景,符合迁移后逐项接回旧功能的节奏。

小结

这一周没有把重点放在新玩法,而是在更换项目的地基。后端语言、服务组织和实时通信入口同时变化,范围很大,因此我更愿意把它看作迁移起点:结构已经搭起来,但从提交记录本身不能推断所有旧功能在当时都已达到同等行为。

提交记录

日期 仓库 提交 原始说明
2026-01-11 后端 01bebdf feat: add swagger
2026-01-11 后端 0b9dec3 temp
2026-01-11 后端 2cd4570 fix: gen logic
2026-01-11 后端 4987400 fix: too many refactoring bugs
2026-01-11 后端 cb19b0c feat: add golang
2026-01-11 后端 dbe965c feat: implement remaining services
2026-01-11 客户端 08c3d5b temp
2026-01-11 客户端 0b82323 feat: use ws istead of Colyseus
2026-01-11 客户端 573196e fix: bugs

TOS 开发周记 14:后端转向 Go,客户端改用原生 WebSocket

https://blog.util.online/2026/01/11/tos-weekly-history/2026-01-05-tos-weekly-14/

作者

amano

发布于

2026-01-11

更新于

2026-08-04

许可协议

评论