protocol

package
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2026 License: MIT Imports: 7 Imported by: 0

README

agent通信协议

Documentation

Index

Constants

View Source
const (
	MagicNumber     uint32 = 0x4B465058
	ProtocolVersion uint8  = 2
	HeaderSize             = 40
)

Variables

This section is empty.

Functions

func IsValidMessageType

func IsValidMessageType(t MessageType) bool

Types

type Flag

type Flag uint16
const (
	FLAG_COMPRESSED  Flag = 0x0001
	FLAG_NEED_ACK    Flag = 0x0002
	FLAG_IS_ACK      Flag = 0x0004
	FLAG_CHUNKED     Flag = 0x0008
	FLAG_LAST_CHUNK  Flag = 0x0010
	FLAG_ERROR       Flag = 0x0020
	FLAG_JSON_BODY   Flag = 0x0040
	FLAG_BINARY_BODY Flag = 0x0080
)

type Message

type Message struct {
	Header  *MessageHeader
	Headers json.RawMessage
	Body    []byte
}

func DecodeMessage

func DecodeMessage(data []byte) (*Message, error)

func NewAgentMetricMessage

func NewAgentMetricMessage(agentID string, metrics any) (*Message, error)

func NewHTTPRequestMessage

func NewHTTPRequestMessage(method, url string, headers map[string]string, body []byte) (*Message, error)

func NewHTTPResponseMessage

func NewHTTPResponseMessage(messageID string, statusCode int, headers map[string]string, body []byte) (*Message, error)

func NewHeartbeatMessage

func NewHeartbeatMessage() *Message

func NewMessage

func NewMessage(msgType MessageType) *Message

func NewTaskConfirmMessage

func NewTaskConfirmMessage(requestID, taskID string, confirm any) (*Message, error)

func NewTaskLogMessage

func NewTaskLogMessage(requestID, taskID string, logMsg any) (*Message, error)

func NewTaskResultMessage

func NewTaskResultMessage(requestID, taskID string, result any) (*Message, error)

func NewTaskRunMessage

func NewTaskRunMessage(requestID, taskID, action string, taskData any) (*Message, error)

func (*Message) Encode

func (m *Message) Encode() ([]byte, error)

func (*Message) GetHeaders

func (m *Message) GetHeaders(v interface{}) error

func (*Message) GetJSONBody

func (m *Message) GetJSONBody(v interface{}) error

func (*Message) SetBinaryBody

func (m *Message) SetBinaryBody(data []byte)

func (*Message) SetHeaders

func (m *Message) SetHeaders(v interface{}) error

func (*Message) SetJSONBody

func (m *Message) SetJSONBody(v interface{}) error

type MessageHeader

type MessageHeader struct {
	Magic       [4]byte
	Version     uint8
	MessageType uint8
	Flags       uint16
	MessageID   [16]byte
	HeadersLen  uint32
	BodyLen     uint32
	StatusCode  uint16
	Reserved1   uint16
	Reserved2   uint32
}

func DecodeHeader

func DecodeHeader(data []byte) (*MessageHeader, error)

func NewMessageHeader

func NewMessageHeader(msgType MessageType) *MessageHeader

func (*MessageHeader) ClearFlag

func (h *MessageHeader) ClearFlag(flag Flag)

func (*MessageHeader) Encode

func (h *MessageHeader) Encode() []byte

func (*MessageHeader) GetMessageID

func (h *MessageHeader) GetMessageID() string

func (*MessageHeader) HasFlag

func (h *MessageHeader) HasFlag(flag Flag) bool

func (*MessageHeader) SetFlag

func (h *MessageHeader) SetFlag(flag Flag)

func (*MessageHeader) SetMessageID

func (h *MessageHeader) SetMessageID(id uuid.UUID)

func (*MessageHeader) TotalSize

func (h *MessageHeader) TotalSize() uint32

func (*MessageHeader) Validate

func (h *MessageHeader) Validate() error

type MessageType

type MessageType uint8
const (
	MSG_TYPE_HEARTBEAT     MessageType = 0x00
	MSG_TYPE_AUTH          MessageType = 0x01
	MSG_TYPE_HANDSHAKE     MessageType = 0x02
	MSG_TYPE_TASK_RUN      MessageType = 0x10
	MSG_TYPE_TASK_RESULT   MessageType = 0x11
	MSG_TYPE_TASK_CONFIRM  MessageType = 0x12
	MSG_TYPE_TASK_CANCEL   MessageType = 0x13
	MSG_TYPE_TASK_STATUS   MessageType = 0x14
	MSG_TYPE_TASK_LOG      MessageType = 0x30
	MSG_TYPE_AGENT_METRIC  MessageType = 0x31
	MSG_TYPE_TASK_STDOUT   MessageType = 0x32
	MSG_TYPE_TASK_STDERR   MessageType = 0x33
	MSG_TYPE_HTTP_REQUEST  MessageType = 0x40
	MSG_TYPE_HTTP_RESPONSE MessageType = 0x41
	MSG_TYPE_FILE_UPLOAD   MessageType = 0x50
	MSG_TYPE_FILE_DOWNLOAD MessageType = 0x51
	MSG_TYPE_CONFIG_UPDATE MessageType = 0x60
	MSG_TYPE_AGENT_INFO    MessageType = 0x61
)

Jump to

Keyboard shortcuts

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