Documentation
¶
Index ¶
- func FactoryRegister(messageType MessageType, messageFunc GenerateMessageFunc) error
- func NewHeartbeatMessage(serialNumber uint64) *heartbeatMessage
- func NewMessageFactory() *messageFactory
- func NewScanner(r io.Reader) *bufio.Scanner
- func NewSingleStringMessage(message string) *singleStringMessage
- func WrapConn(c net.Conn, heartbeatInterval time.Duration) *conn
- type Conn
- type GenerateMessageFunc
- type Generator
- type HeartbeatMessage
- type Message
- type MessageFactory
- type MessageType
- type SingleStringMessage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FactoryRegister ¶
func FactoryRegister(messageType MessageType, messageFunc GenerateMessageFunc) error
FactoryRegister 注册消息类型到默认工厂。
参数:
- messageType: 消息类型。
- messageFunc: 消息生成方法。
返回值:
- error: 错误信息。
func NewHeartbeatMessage ¶
func NewHeartbeatMessage(serialNumber uint64) *heartbeatMessage
NewHeartbeatMessage 创建一个心跳消息包。
参数:
- serialNumber: 心跳包序列号。
返回值:
- *heartbeatMessage: 新建的心跳消息包。
func NewMessageFactory ¶
func NewMessageFactory() *messageFactory
NewMessageFactory 创建一个新消息工厂实例。
无参数。
返回值:
- *messageFactory: 新建的消息工厂实例。
func NewScanner ¶
NewScanner 创建自定义消息包分割的 bufio.Scanner。
参数:
- r: 输入流。
返回值:
- *bufio.Scanner: 自定义分割的 Scanner。
func NewSingleStringMessage ¶
func NewSingleStringMessage(message string) *singleStringMessage
NewSingleStringMessage 创建一个简单的字符串消息包。
参数:
- message: 字符串消息内容。
返回值:
- *singleStringMessage: 新建的字符串消息包。
Types ¶
type Conn ¶
type Conn interface {
// Close 关闭连接。
//
// 返回值:
// - error: 错误信息。
Close() error
// LocalAddr 返回本地网络地址。
//
// 返回值:
// - net.Addr: 本地网络地址。
LocalAddr() net.Addr
// RemoteAddr 返回远程网络地址。
//
// 返回值:
// - net.Addr: 远程网络地址。
RemoteAddr() net.Addr
// SetDeadline 设置读写相关的截止时间。
//
// 参数:
// - t: 截止时间。
//
// 返回值:
// - error: 错误信息。
SetDeadline(time.Time) error
// SetReadDeadline 设置读截止时间。
//
// 参数:
// - t: 截止时间。
//
// 返回值:
// - error: 错误信息。
SetReadDeadline(time.Time) error
// SetWriteDeadline 设置写截止时间。
//
// 参数:
// - t: 截止时间。
//
// 返回值:
// - error: 错误信息。
SetWriteDeadline(time.Time) error
// Closed 返回连接是否已经关闭。
//
// 返回值:
// - bool: 连接是否关闭。
Closed() bool
// Start 启动消息读写 goroutine。
//
// 参数:
// - ctx: 上下文,用于控制 goroutine 生命周期。
Start(context.Context)
// SendMessage 发送消息。
//
// 参数:
// - message: 待发送的消息。
//
// 返回值:
// - error: 错误信息。
SendMessage(Message) error
// Message 返回只读消息通道。
//
// 返回值:
// - <-chan Message: 只读消息通道。
Message() <-chan Message
}
Conn 自定义消息包传输时使用的网络连接接口。 多个 goroutine 可以同时调用 Conn 上的方法。
type GenerateMessageFunc ¶
type GenerateMessageFunc func(MessageType, []byte) (Message, error)
GenerateMessageFunc 生成消息包结构体的方法类型,实现 Generator 接口。
参数:
- messageType: 消息类型。
- payload: 消息对应的字节数组的表示形式(不包含消息类型和长度)。
返回值:
- Message: 生成的消息包。
- error: 错误信息。
func (GenerateMessageFunc) GenerateMessage ¶
func (f GenerateMessageFunc) GenerateMessage(messageType MessageType, payload []byte) (Message, error)
GenerateMessage 调用函数生成消息包结构体。
参数:
- messageType: 消息类型。
- payload: 消息对应的字节数组的表示形式(不包含消息类型和长度)。
返回值:
- Message: 生成的消息包。
- error: 错误信息。
type Generator ¶
type Generator interface {
// GenerateMessage 生成消息包结构体。
//
// 参数:
// - messageType: 消息类型。
// - payload: 消息对应的字节数组的表示形式(不包含消息类型和长度)。
//
// 返回值:
// - Message: 生成的消息包。
// - error: 错误信息。
GenerateMessage(messageType MessageType, payload []byte) (Message, error)
}
Generator 消息生成器接口,定义生成消息包结构体的方法。
type HeartbeatMessage ¶
type HeartbeatMessage interface {
// SerialNumber 返回心跳包序列号。
//
// 返回值:
// - uint64: 心跳包序列号。
SerialNumber() uint64
}
HeartbeatMessage 心跳消息包接口。
type Message ¶
type Message interface {
// MessageType 返回消息类型。
//
// 返回值:
// - MessageType: 消息类型。
MessageType() MessageType
// Pack 将消息内容转换为 payload 字节数组(不包含消息类型和长度)。
//
// 返回值:
// - []byte: 消息内容的字节数组。
// - error: 错误信息。
Pack() ([]byte, error)
// Unpack 将 payload 字节数组(不包含消息类型和长度)还原为消息内容。
//
// 参数:
// - payload: 消息内容的字节数组。
//
// 返回值:
// - error: 错误信息。
Unpack(payload []byte) error
}
Message 消息包接口,定义消息类型、封包与拆包方法。
func FactoryGenerate ¶
func FactoryGenerate(messageType MessageType, payload []byte) (Message, error)
FactoryGenerate 根据消息类型和消息负载数据创建消息。
参数:
- messageType: 消息类型。
- payload: 消息负载数据。
返回值:
- Message: 生成的消息实例。
- error: 错误信息。
func GenerateHeartbeatMessage ¶
func GenerateHeartbeatMessage(messageType MessageType, payload []byte) (Message, error)
GenerateHeartbeatMessage 生成心跳消息包结构体。
参数:
- messageType: 消息类型。
- payload: 心跳包序列号的字节数组。
返回值:
- Message: 生成的心跳消息包。
- error: 错误信息。
func GenerateSingleStringMessage ¶
func GenerateSingleStringMessage(messageType MessageType, payload []byte) (Message, error)
GenerateSingleStringMessage 生成简单的字符串消息包结构体。
参数:
- messageType: 消息类型。
- payload: 字符串消息的字节数组。
返回值:
- Message: 生成的字符串消息包。
- error: 错误信息。
type MessageFactory ¶
type MessageFactory interface {
// Register 注册消息类型到工厂。
//
// 参数:
// - messageType: 消息类型。
// - messageFunc: 消息生成方法。
//
// 返回值:
// - error: 错误信息。
Register(messageType MessageType, messageFunc GenerateMessageFunc) error
// Generate 根据消息类型和消息负载数据创建消息。
//
// 参数:
// - messageType: 消息类型。
// - payload: 消息负载数据。
//
// 返回值:
// - Message: 生成的消息实例。
// - error: 错误信息。
Generate(messageType MessageType, payload []byte) (Message, error)
}
MessageFactory 消息工厂接口,定义消息类型注册与消息生成方法。
type MessageType ¶
type MessageType uint16
MessageType 消息类型。
const ( HeartbeatMessageType MessageType = 0x80 // 心跳消息。 SingleStringMessageType MessageType = 0x09 // 简单的字符串消息。 )
HeartbeatMessageType 心跳消息类型常量。
type SingleStringMessage ¶
type SingleStringMessage interface {
// Message 返回字符串消息内容。
//
// 返回值:
// - string: 字符串消息内容。
Message() string
}
SingleStringMessage 简单的字符串消息包接口。