Documentation
¶
Index ¶
- func ExtractRouteSeq(buf buffer.Buffer) (int32, int32, error)
- func NewPacker(opts ...Option) *defaultPacker
- func PackHeartbeat(server ...bool) buffer.Buffer
- func PackMessage(message *Message) (buffer.Buffer, error)
- func Read(reader io.Reader) (bool, int64, buffer.Buffer, error)
- func SetPacker(packer Packer)
- func UnpackMessage(buf buffer.Buffer) (int32, int32, buffer.Buffer, error)
- type Message
- type Option
- type Packer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractRouteSeq ¶ added in v2.6.0
ExtractRouteSeq 从消息缓冲区中提取路由与序列号 @param buf buffer.Buffer 消息缓冲区 @return @1 int32 路由 @return @2 int32 序列号 @return @3 error 解包失败时返回的错误
func NewPacker ¶
func NewPacker(opts ...Option) *defaultPacker
NewPacker 创建默认打包器 校验配置合法性并预构建心跳包;传入参数不合法时将直接终止程序 @param opts ...Option 打包配置选项 @return @1 *defaultPacker 默认打包器
func PackHeartbeat ¶ added in v2.1.0
PackHeartbeat 打包心跳 返回的心跳包缓冲区不可修改或释放 @param server ...bool 是否为服务端心跳 @return @1 buffer.Buffer 心跳包缓冲区
func PackMessage ¶ added in v2.1.0
PackMessage 以buffer的形式打包消息 @param message *Message 消息 @return @1 buffer.Buffer 打包后的消息缓冲区 @return @2 error 打包失败时返回的错误
func Read ¶ added in v2.6.0
Read 以buffer的形式读取消息 @param reader io.Reader 数据读取源 @return @1 bool 是否为心跳消息 @return @2 int64 服务器侧时间戳(纳秒) @return @3 buffer.Buffer 消息缓冲区 @return @4 error 读取失败时返回的错误
Types ¶
type Option ¶
type Option func(o *options)
func WithBufferBytes ¶
WithBufferBytes 设置消息字节数 最大允许的消息字节数 @param bufferBytes int 消息字节数 @return @1 Option 打包配置选项
func WithByteOrder ¶
WithByteOrder 设置字节序 @param byteOrder binary.ByteOrder 字节序 @return @1 Option 打包配置选项
func WithHeartbeatTime ¶ added in v2.1.0
WithHeartbeatTime 是否携带心跳时间 @param heartbeatTime bool 是否携带心跳时间 @return @1 Option 打包配置选项
func WithRouteBytes ¶
WithRouteBytes 设置路由字节数 路由字节数需为1、2或4 @param routeBytes int 路由字节数 @return @1 Option 打包配置选项
func WithSeqBytes ¶
WithSeqBytes 设置序列号字节数 可取0、1、2或4,为0时不开启序列号编码 @param seqBytes int 序列号字节数 @return @1 Option 打包配置选项
type Packer ¶
type Packer interface {
// Read 以buffer的形式读取消息
// @param reader io.Reader 数据读取源
// @return @1 bool 是否为心跳消息
// @return @2 int64 服务器侧时间戳(纳秒)
// @return @3 buffer.Buffer 消息缓冲区
// @return @4 error 读取失败时返回的错误
Read(reader io.Reader) (bool, int64, buffer.Buffer, error)
// PackMessage 以buffer的形式打包消息
// @param message *Message 消息
// @return @1 buffer.Buffer 打包后的消息缓冲区
// @return @2 error 打包失败时返回的错误
PackMessage(message *Message) (buffer.Buffer, error)
// ExtractRouteSeq 从消息缓冲区中提取路由与序列号
// @param buf buffer.Buffer 消息缓冲区
// @return @1 int32 路由
// @return @2 int32 序列号
// @return @3 error 解包失败时返回的错误
ExtractRouteSeq(buf buffer.Buffer) (int32, int32, error)
// UnpackMessage 解包消息
// @param buf buffer.Buffer 消息缓冲区
// @return @1 *Message 消息对象
// @return @2 error 解包失败时返回的错误
UnpackMessage(buf buffer.Buffer) (int32, int32, buffer.Buffer, error)
// PackHeartbeat 打包心跳
// @param server ...bool 是否为服务端心跳
// @return @1 buffer.Buffer 心跳包缓冲区
PackHeartbeat(server ...bool) buffer.Buffer
}
Packer 打包器接口 定义消息的编码与解码能力