feat: 实现 internal/protocol 帧类型、编解码、校验与请求指纹

This commit is contained in:
Nixevol
2026-09-30 06:01:08 +08:00
parent 86dc10a371
commit 31d92f841d
9 changed files with 2156 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
package protocol
// ErrorBody 是 resp / 注册失败里的 error 对象。
type ErrorBody struct {
Code string `json:"code"`
Message string `json:"message"`
}
// Error 是协议包校验失败时返回的错误,Code 对应第 6.10 节。
type Error struct {
Code string
Message string
}
func (e *Error) Error() string {
if e == nil {
return ""
}
if e.Message == "" {
return e.Code
}
return e.Code + ": " + e.Message
}
func (e *Error) Body() ErrorBody {
if e == nil {
return ErrorBody{}
}
return ErrorBody{Code: e.Code, Message: e.Message}
}
func badRequest(msg string) *Error {
return &Error{Code: CodeBadRequest, Message: msg}
}
func bodyTooLarge(msg string) *Error {
return &Error{Code: CodeBodyTooLarge, Message: msg}
}
func metaTooLarge(msg string) *Error {
return &Error{Code: CodeMetaTooLarge, Message: msg}
}
func frameTooLarge(msg string) *Error {
return &Error{Code: CodeFrameTooLarge, Message: msg}
}