impl

package
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ClearAllHandlers added in v1.1.0

func ClearAllHandlers()

ClearAllHandlers 清空所有已注册的业务处理器 注意: 此方法主要用于测试场景,在生产环境中应谨慎使用

func GetAllHandlers added in v1.1.0

func GetAllHandlers() map[string]HandlerEntry

GetAllHandlers 获取所有已注册的业务处理器 返回: 包含所有路由和对应处理器映射的map副本,防止外部修改原始数据

func GetHandler added in v1.1.0

func GetHandler(router string) (RequestHandler, RequestConstructor)

GetHandler 根据路由获取对应的业务处理器 router: 路由标识符,用于匹配具体的业务处理逻辑 返回: 如果找到对应的处理器则返回,否则返回nil GetHandler 获取:返回处理器 + 构造函数(确保非 nil)

func GetSharedKey added in v1.1.0

func GetSharedKey(c cache.Cache, cipher crypto.Cipher) ([]byte, error)

GetSharedKey 获取ECDH密钥协商生成的共享密钥,并通过缓存优化性能 c: 缓存实例,用于存储加密后的共享密钥 cipher: 包含ECDSA密钥对的加密器,用于密钥协商 返回: 协商后的共享密钥和可能的错误信息

func PackAny added in v1.1.0

func PackAny(data proto.Message) (*anypb.Any, error)

PackAny 将protobuf消息包装为Any类型,便于传输和类型擦除 data: 需要包装的protobuf消息对象 返回: 包装后的Any对象和可能的错误信息

func SetHandler added in v1.1.0

func SetHandler(router string, handler RequestHandler, constructor RequestConstructor)

SetHandler 注册:同时传入处理器 + 构造函数

func Signature added in v1.1.0

func Signature(key, d, n []byte, t, p int64, r string, u int64) ([]byte, error)

Signature 使用HMAC-SHA256算法生成请求/响应的数字签名,确保数据完整性 key: HMAC密钥,用于签名计算 d: 数据负载,通常是请求体的二进制数据 n: 随机数nonce,防止重放攻击 t: 时间戳,确保请求时效性 p: 加密标识,0表示明文,1表示密文 r: 路由标识符,指定业务处理逻辑 u: 客户端ID,指定Cipher 返回: 计算后的签名字节数组

func UnpackAny added in v1.1.0

func UnpackAny(anyData *anypb.Any, target proto.Message) error

UnpackAny 将protobuf Any类型的数据解包到指定的目标消息类型 anyData: 包含任意类型数据的Any包装器 target: 目标消息对象,用于接收解包后的数据 返回: 解包过程中的错误信息

Types

type CommonWorker added in v1.1.0

type CommonWorker struct {
	pb.UnimplementedCommonWorkerServer
	ConfigProvider ConfigProvider // 配置提供者接口
}

func (*CommonWorker) Do added in v1.1.0

Do 统一的RPC业务请求处理入口,实现完整的请求生命周期 ctx: 请求上下文,包含超时、元数据等信息 req: 通用请求对象,包含加密数据、签名、路由等信息 返回: 通用响应对象和可能的处理错误

func (*CommonWorker) GetCipher added in v1.1.0

func (self *CommonWorker) GetCipher() map[int64]crypto.Cipher

GetCipher 获取RSA/ECDSA密钥对列表,用于数字签名验证 返回: 配置的RSA密钥列表,如果ConfigProvider未设置则返回nil

func (*CommonWorker) GetLocalCache added in v1.1.0

func (self *CommonWorker) GetLocalCache() cache.Cache

GetLocalCache 获取本地缓存实例,用于存储共享密钥等临时数据 返回: 本地缓存实例,如果ConfigProvider未设置则返回nil

func (*CommonWorker) GetRedisCache added in v1.1.0

func (self *CommonWorker) GetRedisCache() cache.Cache

GetRedisCache 获取Redis分布式缓存实例,用于跨服务数据共享 返回: Redis缓存实例,如果ConfigProvider未设置则返回nil

type ConfigProvider added in v1.1.0

type ConfigProvider interface {
	GetCipher() map[int64]crypto.Cipher
	GetLocalCache() cache.Cache
	GetRedisCache() cache.Cache
}

ConfigProvider 配置提供者接口

type HandlerEntry added in v1.1.0

type HandlerEntry struct {
	Handler     RequestHandler     // 原业务处理器
	Constructor RequestConstructor // 请求对象构造函数(new object 方法)
}

2. 定义路由项:绑定处理器 + 构造函数

type RequestConstructor added in v1.1.0

type RequestConstructor func() proto.Message

1. 定义请求对象构造函数:负责返回非 nil 的业务请求实例(核心) 替代原来的 RequestType(),编译期保证返回非 nil

type RequestHandler added in v1.1.0

type RequestHandler func(ctx context.Context, req proto.Message) (proto.Message, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL