Documentation
¶
Index ¶
- Constants
- Variables
- func ClientIDToHex(id uint64) string
- func ConnLayer(pkt Packet) bool
- func Encode(pkt Packet) ([]byte, error)
- func EncodeToWriter(pkt Packet, writer io.Writer) error
- func PacketIDHex(id uint64) string
- func SessionIDHex(id uint64) string
- func SessionLayer(pkt Packet) bool
- type AppAbove
- type Cnss
- type ConnAbove
- type ConnAckPacket
- type ConnData
- type ConnFlags
- type ConnPacket
- type DisConnAckPacket
- type DisConnPacket
- type DismissAckPacket
- func (basePacket DismissAckPacket) ClientID() uint64
- func (pkt *DismissAckPacket) Decode(data []byte) (uint32, error)
- func (pkt *DismissAckPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *DismissAckPacket) Encode() ([]byte, error)
- func (pkt *DismissAckPacket) SessionID() uint64
- func (pkt *DismissAckPacket) SetSessionID(sessionID uint64)
- type DismissPacket
- func (basePacket DismissPacket) ClientID() uint64
- func (pkt *DismissPacket) Decode(data []byte) (uint32, error)
- func (pkt *DismissPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *DismissPacket) Encode() ([]byte, error)
- func (pkt *DismissPacket) SessionID() uint64
- func (pkt *DismissPacket) SetSessionID(sessionID uint64)
- type Heartbeat
- type HeartbeatAckPacket
- type HeartbeatPacket
- type MessageAckPacket
- func (basePacket MessageAckPacket) ClientID() uint64
- func (pkt *MessageAckPacket) Decode(data []byte) (uint32, error)
- func (pkt *MessageAckPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *MessageAckPacket) Encode() ([]byte, error)
- func (pkt *MessageAckPacket) SessionID() uint64
- func (pkt *MessageAckPacket) SetSessionID(sessionID uint64)
- type MessageData
- type MessagePacket
- func (basePacket MessagePacket) ClientID() uint64
- func (pkt *MessagePacket) Decode(data []byte) (uint32, error)
- func (pkt *MessagePacket) DecodeFromReader(reader io.Reader) error
- func (pkt *MessagePacket) Encode() ([]byte, error)
- func (pkt *MessagePacket) SessionID() uint64
- func (pkt *MessagePacket) SetSessionID(sessionID uint64)
- type Packet
- type PacketFactory
- type PacketHeader
- func (pktHdr *PacketHeader) Consistency() Cnss
- func (pktHdr *PacketHeader) Decode(data []byte) (uint32, error)
- func (pktHdr *PacketHeader) DecodeFromReader(reader io.Reader) error
- func (pktHdr *PacketHeader) Encode() ([]byte, error)
- func (pktHdr *PacketHeader) ID() uint64
- func (pktHdr *PacketHeader) Length() int
- func (pktHdr *PacketHeader) Type() Type
- type RegisterAckPacket
- func (basePacket RegisterAckPacket) ClientID() uint64
- func (pkt *RegisterAckPacket) Decode(data []byte) (uint32, error)
- func (pkt *RegisterAckPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *RegisterAckPacket) Encode() ([]byte, error)
- func (pkt *RegisterAckPacket) SessionID() uint64
- func (pkt *RegisterAckPacket) SetSessionID(sessionID uint64)
- type RegisterData
- type RegisterPacket
- func (basePacket RegisterPacket) ClientID() uint64
- func (pkt *RegisterPacket) Decode(data []byte) (uint32, error)
- func (pkt *RegisterPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *RegisterPacket) Encode() ([]byte, error)
- func (pkt *RegisterPacket) Length() int
- func (pkt *RegisterPacket) Method() string
- func (pkt *RegisterPacket) SessionID() uint64
- func (pkt *RegisterPacket) SetSessionID(sessionID uint64)
- type RequestCancelPacket
- func (pkt *RequestCancelPacket) Decode(data []byte) (uint32, error)
- func (pkt *RequestCancelPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *RequestCancelPacket) Encode() ([]byte, error)
- func (pkt *RequestCancelPacket) SessionID() uint64
- func (pkt *RequestCancelPacket) SetSessionID(sessionID uint64)
- type RequestCancelType
- type RequestPacket
- type ResponsePacket
- type RetCode
- type SessionAbove
- type SessionAckPacket
- func (basePacket SessionAckPacket) ClientID() uint64
- func (pkt *SessionAckPacket) Decode(data []byte) (uint32, error)
- func (pkt *SessionAckPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *SessionAckPacket) Encode() ([]byte, error)
- func (pkt *SessionAckPacket) NegotiateID() uint64
- func (pkt *SessionAckPacket) SessionID() uint64
- func (pkt *SessionAckPacket) SetError(err error)
- func (pkt *SessionAckPacket) SetSessionID(sessionID uint64)
- type SessionData
- type SessionFlags
- type SessionPacket
- func (basePacket SessionPacket) ClientID() uint64
- func (pkt *SessionPacket) Decode(data []byte) (uint32, error)
- func (pkt *SessionPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *SessionPacket) Encode() ([]byte, error)
- func (pkt *SessionPacket) NegotiateID() uint64
- func (pkt *SessionPacket) SessionID() uint64
- func (pkt *SessionPacket) SessionIDAcquire() bool
- func (pkt *SessionPacket) SetSessionID(sessionID uint64)
- type StreamPacket
- func (basePacket StreamPacket) ClientID() uint64
- func (pkt *StreamPacket) Decode(data []byte) (uint32, error)
- func (pkt *StreamPacket) DecodeFromReader(reader io.Reader) error
- func (pkt *StreamPacket) Encode() ([]byte, error)
- func (pkt *StreamPacket) Length() int
- func (pkt *StreamPacket) SessionID() uint64
- func (pkt *StreamPacket) SetSessionID(sessionID uint64)
- type Type
- type Version
Constants ¶
View Source
const ( // 0 means sessionID required SessionIDNull uint64 = 0 // 1 means default session SessionID1 uint64 = 1 )
View Source
const (
ClientIDNull uint64 = 0
)
View Source
const (
PacketIDNull uint64 = 0
)
View Source
const (
V01 = 0x01
)
Variables ¶
Functions ¶
func ClientIDToHex ¶
func PacketIDHex ¶
func SessionIDHex ¶
func SessionLayer ¶
Types ¶
type AppAbove ¶
type AppAbove interface { SessionAbove }
type ConnAckPacket ¶
type ConnAckPacket struct { *PacketHeader RetCode RetCode ClientID uint64 ConnData *ConnData }
func (*ConnAckPacket) DecodeFromReader ¶
func (connAckPkt *ConnAckPacket) DecodeFromReader(reader io.Reader) error
func (*ConnAckPacket) Encode ¶
func (connAckPkt *ConnAckPacket) Encode() ([]byte, error)
type ConnPacket ¶
type ConnPacket struct { *PacketHeader ConnFlags ClientID uint64 ConnData *ConnData }
TODO authN
func (*ConnPacket) ClientIDAcquire ¶
func (connPkt *ConnPacket) ClientIDAcquire() bool
func (*ConnPacket) DecodeFromReader ¶
func (connPkt *ConnPacket) DecodeFromReader(reader io.Reader) error
func (*ConnPacket) Encode ¶
func (connPkt *ConnPacket) Encode() ([]byte, error)
type DisConnAckPacket ¶
type DisConnAckPacket struct { *PacketHeader RetCode RetCode ConnData *ConnData }
func (*DisConnAckPacket) Decode ¶
func (disConnAckPkt *DisConnAckPacket) Decode(data []byte) (uint32, error)
func (*DisConnAckPacket) DecodeFromReader ¶
func (disConnAckPkt *DisConnAckPacket) DecodeFromReader(reader io.Reader) error
func (*DisConnAckPacket) Encode ¶
func (disConnAckPkt *DisConnAckPacket) Encode() ([]byte, error)
type DisConnPacket ¶
type DisConnPacket struct {
*PacketHeader
}
func (*DisConnPacket) DecodeFromReader ¶
func (disConnPkt *DisConnPacket) DecodeFromReader(reader io.Reader) error
func (*DisConnPacket) Encode ¶
func (disConnPkt *DisConnPacket) Encode() ([]byte, error)
type DismissAckPacket ¶
type DismissAckPacket struct { *PacketHeader SessionData *SessionData // contains filtered or unexported fields }
func (*DismissAckPacket) DecodeFromReader ¶
func (pkt *DismissAckPacket) DecodeFromReader(reader io.Reader) error
func (*DismissAckPacket) Encode ¶
func (pkt *DismissAckPacket) Encode() ([]byte, error)
func (*DismissAckPacket) SessionID ¶
func (pkt *DismissAckPacket) SessionID() uint64
func (*DismissAckPacket) SetSessionID ¶
func (pkt *DismissAckPacket) SetSessionID(sessionID uint64)
type DismissPacket ¶
type DismissPacket struct { *PacketHeader SessionData *SessionData // contains filtered or unexported fields }
func (*DismissPacket) DecodeFromReader ¶
func (pkt *DismissPacket) DecodeFromReader(reader io.Reader) error
func (*DismissPacket) Encode ¶
func (pkt *DismissPacket) Encode() ([]byte, error)
func (*DismissPacket) SessionID ¶
func (pkt *DismissPacket) SessionID() uint64
func (*DismissPacket) SetSessionID ¶
func (pkt *DismissPacket) SetSessionID(sessionID uint64)
type HeartbeatAckPacket ¶
type HeartbeatAckPacket struct {
*PacketHeader
}
func (*HeartbeatAckPacket) Decode ¶
func (hbAckPkt *HeartbeatAckPacket) Decode(data []byte) (uint32, error)
func (*HeartbeatAckPacket) DecodeFromReader ¶
func (hbAckPkt *HeartbeatAckPacket) DecodeFromReader(reader io.Reader) error
func (*HeartbeatAckPacket) Encode ¶
func (hbAckPkt *HeartbeatAckPacket) Encode() ([]byte, error)
type HeartbeatPacket ¶
type HeartbeatPacket struct {
*PacketHeader
}
func (*HeartbeatPacket) DecodeFromReader ¶
func (hbPkt *HeartbeatPacket) DecodeFromReader(reader io.Reader) error
func (*HeartbeatPacket) Encode ¶
func (hbPkt *HeartbeatPacket) Encode() ([]byte, error)
type MessageAckPacket ¶
type MessageAckPacket struct { *PacketHeader Data *MessageData // contains filtered or unexported fields }
func (*MessageAckPacket) DecodeFromReader ¶
func (pkt *MessageAckPacket) DecodeFromReader(reader io.Reader) error
func (*MessageAckPacket) Encode ¶
func (pkt *MessageAckPacket) Encode() ([]byte, error)
func (*MessageAckPacket) SessionID ¶
func (pkt *MessageAckPacket) SessionID() uint64
func (*MessageAckPacket) SetSessionID ¶
func (pkt *MessageAckPacket) SetSessionID(sessionID uint64)
type MessageData ¶
type MessageData struct { Key []byte `json:"key,omitempty"` Value []byte `json:"value,omitempty"` Topic string `json:"topic,omitempty"` Custom []byte `json:"custom,omitempty"` Error string `json:"error,omitempty"` Timeout time.Duration `json:"timeout,omitempty"` Deadline time.Time `json:"deadline,omitempty"` Context struct { Deadline time.Time `json:"deadline,omitempty"` } `json:"context,omitempty"` }
TODO 待优化
type MessagePacket ¶
type MessagePacket struct { *PacketHeader Data *MessageData // contains filtered or unexported fields }
func (*MessagePacket) DecodeFromReader ¶
func (pkt *MessagePacket) DecodeFromReader(reader io.Reader) error
func (*MessagePacket) Encode ¶
func (pkt *MessagePacket) Encode() ([]byte, error)
func (*MessagePacket) SessionID ¶
func (pkt *MessagePacket) SessionID() uint64
func (*MessagePacket) SetSessionID ¶
func (pkt *MessagePacket) SetSessionID(sessionID uint64)
type Packet ¶
type PacketFactory ¶
type PacketFactory interface { NewPacketID() uint64 // conn layer NewConnPacket(wanted uint64, peersCall bool, heartbeat Heartbeat, meta []byte) *ConnPacket NewConnAckPacket(packetID uint64, confirmedClientID uint64, err error) *ConnAckPacket NewDisConnPacket() *DisConnPacket NewDisConnAckPacket(packetID uint64, err error) *DisConnAckPacket NewHeartbeatPacket() *HeartbeatPacket NewHeartbeatAckPacket(packetID uint64) *HeartbeatAckPacket // session layer NewSessionPacket(negotiateID uint64, sessionIDPeersCall bool, meta []byte, peer string) *SessionPacket NewSessionAckPacket(packetID uint64, negotiateID uint64, confirmedID uint64, err error) *SessionAckPacket NewDismissPacket(sessionID uint64) *DismissPacket NewDismissAckPacket(packetID uint64, sessionID uint64, err error) *DismissAckPacket // application layer NewMessagePacket(key, value []byte) *MessagePacket NewMessagePacketWithIDAndSessionID(id, sessionID uint64, key, value []byte) *MessagePacket NewMessagePacketWithSessionID(sessionID uint64, key, value, custom []byte) *MessagePacket NewMessageAckPacket(packetID uint64, err error) *MessageAckPacket NewMessageAckPacketWithSessionID(sessionID, packetID uint64, err error) *MessageAckPacket NewRequestPacket(pattern, data []byte) *RequestPacket NewRequestCancelPacketWithIDAndSessionID(id, sessionID uint64, cancelType RequestCancelType) *RequestCancelPacket NewRequestPacketWithIDAndSessionID(id, sessionID uint64, pattern, data []byte) *RequestPacket NewResponsePacket(requestPacketID uint64, pattern, data []byte, err error) *ResponsePacket NewStreamPacket(data []byte) *StreamPacket NewStreamPacketWithSessionID(sessionID uint64, data []byte) *StreamPacket NewRegisterPacket(method []byte) *RegisterPacket NewRegisterPacketWithSessionID(sessionID uint64, method []byte) *RegisterPacket NewRegisterAckPacket(packetID uint64, err error) *RegisterAckPacket NewRegisterAckPacketWithSessionID(sessionID uint64, packetID uint64, err error) *RegisterAckPacket }
func NewPacketFactory ¶
func NewPacketFactory(packetIDs *id.IDCounter) PacketFactory
type PacketHeader ¶
func (*PacketHeader) Consistency ¶
func (pktHdr *PacketHeader) Consistency() Cnss
func (*PacketHeader) DecodeFromReader ¶
func (pktHdr *PacketHeader) DecodeFromReader(reader io.Reader) error
func (*PacketHeader) Encode ¶
func (pktHdr *PacketHeader) Encode() ([]byte, error)
func (*PacketHeader) ID ¶
func (pktHdr *PacketHeader) ID() uint64
func (*PacketHeader) Length ¶
func (pktHdr *PacketHeader) Length() int
Length returns payload length
func (*PacketHeader) Type ¶
func (pktHdr *PacketHeader) Type() Type
type RegisterAckPacket ¶
type RegisterAckPacket struct { *PacketHeader RegisterData *RegisterData // contains filtered or unexported fields }
func (*RegisterAckPacket) Decode ¶
func (pkt *RegisterAckPacket) Decode(data []byte) (uint32, error)
func (*RegisterAckPacket) DecodeFromReader ¶
func (pkt *RegisterAckPacket) DecodeFromReader(reader io.Reader) error
func (*RegisterAckPacket) Encode ¶
func (pkt *RegisterAckPacket) Encode() ([]byte, error)
func (*RegisterAckPacket) SessionID ¶
func (pkt *RegisterAckPacket) SessionID() uint64
func (*RegisterAckPacket) SetSessionID ¶
func (pkt *RegisterAckPacket) SetSessionID(sessionID uint64)
type RegisterData ¶
type RegisterData struct {
Error string `json:"error,omitempty"`
}
type RegisterPacket ¶
type RegisterPacket struct { *PacketHeader // contains filtered or unexported fields }
func (*RegisterPacket) DecodeFromReader ¶
func (pkt *RegisterPacket) DecodeFromReader(reader io.Reader) error
func (*RegisterPacket) Encode ¶
func (pkt *RegisterPacket) Encode() ([]byte, error)
func (*RegisterPacket) Length ¶
func (pkt *RegisterPacket) Length() int
func (*RegisterPacket) Method ¶
func (pkt *RegisterPacket) Method() string
func (*RegisterPacket) SessionID ¶
func (pkt *RegisterPacket) SessionID() uint64
func (*RegisterPacket) SetSessionID ¶
func (pkt *RegisterPacket) SetSessionID(sessionID uint64)
type RequestCancelPacket ¶
type RequestCancelPacket struct { *PacketHeader // contains filtered or unexported fields }
Request cancel packet for RPC cancelation
func (*RequestCancelPacket) Decode ¶
func (pkt *RequestCancelPacket) Decode(data []byte) (uint32, error)
func (*RequestCancelPacket) DecodeFromReader ¶
func (pkt *RequestCancelPacket) DecodeFromReader(reader io.Reader) error
func (*RequestCancelPacket) Encode ¶
func (pkt *RequestCancelPacket) Encode() ([]byte, error)
func (*RequestCancelPacket) SessionID ¶
func (pkt *RequestCancelPacket) SessionID() uint64
func (*RequestCancelPacket) SetSessionID ¶
func (pkt *RequestCancelPacket) SetSessionID(sessionID uint64)
type RequestCancelType ¶
type RequestCancelType int16
const ( RequestCancelTypeCanceled RequestCancelType = 1 RequestCancelTypeDeadlineExceeded RequestCancelType = 2 )
type ResponsePacket ¶
type ResponsePacket struct {
*MessageAckPacket
}
Response packet for RPC handler
type SessionAbove ¶
type SessionAckPacket ¶
type SessionAckPacket struct { *PacketHeader SessionFlags // 16 bits, unused now SessionData *SessionData // contains filtered or unexported fields }
func (*SessionAckPacket) DecodeFromReader ¶
func (pkt *SessionAckPacket) DecodeFromReader(reader io.Reader) error
func (*SessionAckPacket) Encode ¶
func (pkt *SessionAckPacket) Encode() ([]byte, error)
func (*SessionAckPacket) NegotiateID ¶
func (pkt *SessionAckPacket) NegotiateID() uint64
func (*SessionAckPacket) SessionID ¶
func (pkt *SessionAckPacket) SessionID() uint64
func (*SessionAckPacket) SetError ¶
func (pkt *SessionAckPacket) SetError(err error)
func (*SessionAckPacket) SetSessionID ¶
func (pkt *SessionAckPacket) SetSessionID(sessionID uint64)
type SessionData ¶
type SessionFlags ¶
type SessionPacket ¶
type SessionPacket struct { *PacketHeader SessionFlags // 16 bits SessionData *SessionData // elastic fields // contains filtered or unexported fields }
func (*SessionPacket) DecodeFromReader ¶
func (pkt *SessionPacket) DecodeFromReader(reader io.Reader) error
func (*SessionPacket) Encode ¶
func (pkt *SessionPacket) Encode() ([]byte, error)
func (*SessionPacket) NegotiateID ¶
func (pkt *SessionPacket) NegotiateID() uint64
func (*SessionPacket) SessionID ¶
func (pkt *SessionPacket) SessionID() uint64
func (*SessionPacket) SessionIDAcquire ¶
func (pkt *SessionPacket) SessionIDAcquire() bool
func (*SessionPacket) SetSessionID ¶
func (pkt *SessionPacket) SetSessionID(sessionID uint64)
type StreamPacket ¶
type StreamPacket struct { *PacketHeader Data []byte // contains filtered or unexported fields }
func (*StreamPacket) DecodeFromReader ¶
func (pkt *StreamPacket) DecodeFromReader(reader io.Reader) error
func (*StreamPacket) Encode ¶
func (pkt *StreamPacket) Encode() ([]byte, error)
func (*StreamPacket) Length ¶
func (pkt *StreamPacket) Length() int
func (*StreamPacket) SessionID ¶
func (pkt *StreamPacket) SessionID() uint64
func (*StreamPacket) SetSessionID ¶
func (pkt *StreamPacket) SetSessionID(sessionID uint64)
type Type ¶
type Type byte
const ( TypeConnPacket Type = 0x01 TypeConnAckPacket Type = 0x02 TypeDisConnPacket Type = 0x11 TypeDisConnAckPacket Type = 0x12 TypeHeartbeatPacket Type = 0x21 TypeHeartbeatAckPacket Type = 0x22 TypeSessionPacket Type = 0x31 TypeSessionAckPacket Type = 0x32 TypeDismissPacket Type = 0x41 TypeDismissAckPacket Type = 0x42 TypeMessagePacket Type = 0x51 TypeMessageAckPacket Type = 0x52 TypeStreamPacket Type = 0x61 TypeRequestPacket Type = 0x71 TypeResponsePacket Type = 0x72 TypeRequestCancelPacket Type = 0x73 TypeRegisterPacket Type = 0x81 TypeRegisterAckPacket Type = 0x82 )
Click to show internal directories.
Click to hide internal directories.