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/