tag

Go

共 679 篇文章。
全部文章JavaGo书稿TypeScript游戏开发独立开发者小游戏游戏设计Godot性能优化RustKafkaPython游戏引擎
mmo

《MMO 服务器开发》6.3 断线重连与重连票据

玩家掉线后必须能秒回游戏,但又不能凭一个账号名就免密登入。本节给 aegis 设计一张重连票据:用 HMAC-SHA256 签发、绑定账号与连接序号、带过期时间、且只能使用一次。我们用标准库把它从零写出来,并用测试逐一证明正常校验、签名被篡改、过期、以及同一票据二次使用这四种路径的行为。

4 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》6.1 WebSocket 握手、掩码与分片

浏览器与小程序只能发起 HTTP 请求,MMO 网关的长连接入口因此多半是 WebSocket。本节不引任何第三方库,用标准库手写 RFC 6455 里网关真正需要的一小块:从 Sec-WebSocket-Key 拼 GUID、SHA-1、Base64 回 101,到帧头的 FIN、opcode、MASK 与 126/127 扩展长度,再到客户端必须掩码的逐字节 XOR 与分片重组。

5 分钟阅读
MMO 游戏服务端 网络编程
mmo

《MMO 服务器开发》4.3 基准:JSON、MessagePack、Protobuf 与扁平化协议

同一条移动通知,用 JSON、手写扁平化协议与手写 varint 二进制分别编解码,本机跑出 ns/op、B/op 与 allocs/op。JSON 编解码要几百纳秒和几次堆分配,手写二进制只要十几到二十几纳秒、零到一次分配。本节给出真实数字表格与选型判据,并说明 MessagePack 与 Protobuf 为什么不在本节实测。

7 分钟阅读
MMO 游戏服务端 网络编程
golang

《Go 语言编程入门》15.3 统一错误响应与输入校验

service 抛出的领域错误怎么变成正确的 HTTP 状态码?本节把错误映射收敛到一处:定义领域错误集、用 errors.Is/As 分支把 ErrNotFound 映射成 404、把校验错误映射成 422,并给出统一的 JSON 错误响应结构。同时实现带字段的输入校验,让客户端知道到底是哪个字段不合法,最后强调不要把内部错误细节泄露给外部。

6 分钟阅读
Go Go 语言编程入门 错误处理
golang

《Go 语言编程入门》15.2 依赖注入与项目分层

配置有了,谁来把它组装成运行中的对象?本节讲 TaskAPI 的分层:handler 只做协议转换、service 承载业务规则、store 负责持久化,三者用接口解耦。然后演示 Go 惯用的手工依赖注入——在 main 这个 composition root 里把所有依赖 new 出来、逐层注入,不引入任何 DI 框架,并用 fake store 证明层与层之间可替换。

6 分钟阅读
Go Go 语言编程入门 依赖注入