feat: 实现 internal/protocol 帧类型、编解码、校验与请求指纹
This commit is contained in:
@@ -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}
|
||||
}
|
||||
Reference in New Issue
Block a user