Documentation
¶
Overview ¶
Package frame provides the definition of frame.
Package frame defines frames for yomo.
Index ¶
- func DecodeToMetaFrame(buf []byte, meta *MetaFrame) error
- func DecodeToPayloadFrame(buf []byte, payload *PayloadFrame) error
- type AcceptedFrame
- type AuthenticationFrame
- type AuthenticationRespFrame
- type BackflowFrame
- type DataFrame
- func (d *DataFrame) Encode() []byte
- func (d *DataFrame) GetCarriage() []byte
- func (d *DataFrame) GetDataTag() Tag
- func (d *DataFrame) GetMetaFrame() *MetaFrame
- func (d *DataFrame) IsBroadcast() bool
- func (d *DataFrame) SetBroadcast(enabled bool)
- func (d *DataFrame) SetCarriage(tag Tag, carriage []byte)
- func (d *DataFrame) SetSourceID(sourceID string)
- func (d *DataFrame) SetTransactionID(transactionID string)
- func (d *DataFrame) SourceID() string
- func (d DataFrame) String() string
- func (d *DataFrame) Tag() Tag
- func (d *DataFrame) TransactionID() string
- func (d *DataFrame) Type() Type
- type Frame
- type GoawayFrame
- type HandshakeAckFrame
- type HandshakeFrame
- type HandshakeRejectedFrame
- type MetaFrame
- func (m *MetaFrame) Encode() []byte
- func (m *MetaFrame) IsBroadcast() bool
- func (m *MetaFrame) Metadata() []byte
- func (m *MetaFrame) SetBroadcast(enabled bool)
- func (m *MetaFrame) SetMetadata(metadata []byte)
- func (m *MetaFrame) SetSourceID(sourceID string)
- func (m *MetaFrame) SetTransactionID(transactionID string)
- func (m *MetaFrame) SourceID() string
- func (m *MetaFrame) TransactionID() string
- type PayloadFrame
- type ReadWriter
- type Reader
- type RejectedFrame
- type Tag
- type Type
- type Writer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeToMetaFrame ¶
DecodeToMetaFrame decode a MetaFrame instance from given buffer.
func DecodeToPayloadFrame ¶
func DecodeToPayloadFrame(buf []byte, payload *PayloadFrame) error
DecodeToPayloadFrame decodes Y3 encoded bytes to PayloadFrame
Types ¶
type AcceptedFrame ¶
type AcceptedFrame struct{}
AcceptedFrame is a Y3 encoded bytes, Tag is a fixed value TYPE_ID_ACCEPTED_FRAME
func DecodeToAcceptedFrame ¶
func DecodeToAcceptedFrame(buf []byte) (*AcceptedFrame, error)
DecodeToAcceptedFrame decodes Y3 encoded bytes to AcceptedFrame.
func NewAcceptedFrame ¶
func NewAcceptedFrame() *AcceptedFrame
NewAcceptedFrame creates a new AcceptedFrame with a given TagID of user's data
type AuthenticationFrame ¶ added in v1.11.0
type AuthenticationFrame struct {
// contains filtered or unexported fields
}
AuthenticationFrame is used to authenticate the client, Once the connection is established, the client immediately, sends information to the server, server gets the way to authenticate according to authName and use authPayload to do a authentication.
AuthenticationFrame is a Y3 encoded.
func DecodeToAuthenticationFrame ¶ added in v1.11.0
func DecodeToAuthenticationFrame(buf []byte) (*AuthenticationFrame, error)
DecodeToAuthenticationFrame decodes Y3 encoded bytes to AuthenticationFrame.
func NewAuthenticationFrame ¶ added in v1.11.0
func NewAuthenticationFrame(authName string, authPayload string) *AuthenticationFrame
NewAuthenticationFrame creates a new AuthenticationFrame.
func (*AuthenticationFrame) AuthName ¶ added in v1.11.0
func (h *AuthenticationFrame) AuthName() string
AuthName returns authentication name, server finds the mode of authentication in AuthName.
func (*AuthenticationFrame) AuthPayload ¶ added in v1.11.0
func (h *AuthenticationFrame) AuthPayload() string
AuthPayload returns authentication payload.
func (*AuthenticationFrame) Encode ¶ added in v1.11.0
func (h *AuthenticationFrame) Encode() []byte
Encode encodes AuthenticationFrame to bytes in Y3 codec.
func (*AuthenticationFrame) Type ¶ added in v1.11.0
func (h *AuthenticationFrame) Type() Type
Type returns the type of AuthenticationFrame.
type AuthenticationRespFrame ¶ added in v1.11.0
type AuthenticationRespFrame struct {
// contains filtered or unexported fields
}
AuthenticationRespFrame is the response of Authentication. AuthenticationRespFrame is a Y3 encoded bytes.
func DecodeToAuthenticationRespFrame ¶ added in v1.11.0
func DecodeToAuthenticationRespFrame(buf []byte) (*AuthenticationRespFrame, error)
DecodeToAuthenticationRespFrame decodes Y3 encoded bytes to AuthenticationRespFrame.
func NewAuthenticationRespFrame ¶ added in v1.11.0
func NewAuthenticationRespFrame(ok bool, reason string) *AuthenticationRespFrame
NewAuthenticationRespFrame returns a AuthenticationRespFrame.
func (*AuthenticationRespFrame) Encode ¶ added in v1.11.0
func (f *AuthenticationRespFrame) Encode() []byte
Encode encodes AuthenticationRespFrame to Y3 encoded bytes.
func (*AuthenticationRespFrame) OK ¶ added in v1.11.0
func (f *AuthenticationRespFrame) OK() bool
OK returns if Authentication is success.
func (*AuthenticationRespFrame) Reason ¶ added in v1.11.0
func (f *AuthenticationRespFrame) Reason() string
Reason returns the failed reason of Authentication.
func (*AuthenticationRespFrame) Type ¶ added in v1.11.0
func (f *AuthenticationRespFrame) Type() Type
Type gets the type of the AuthenticationRespFrame.
type BackflowFrame ¶ added in v1.8.0
BackflowFrame is a Y3 encoded bytes It's used to receive stream function processed result
func DecodeToBackflowFrame ¶ added in v1.8.0
func DecodeToBackflowFrame(buf []byte) (*BackflowFrame, error)
DecodeToBackflowFrame decodes Y3 encoded bytes to BackflowFrame
func NewBackflowFrame ¶ added in v1.8.0
func NewBackflowFrame(tag Tag, carriage []byte) *BackflowFrame
NewBackflowFrame creates a new BackflowFrame with a given tag and carriage
func (*BackflowFrame) Encode ¶ added in v1.8.0
func (f *BackflowFrame) Encode() []byte
Encode to Y3 encoded bytes
func (*BackflowFrame) GetCarriage ¶ added in v1.8.0
func (f *BackflowFrame) GetCarriage() []byte
GetCarriage return data
func (*BackflowFrame) GetDataTag ¶ added in v1.8.0
func (f *BackflowFrame) GetDataTag() Tag
GetDataTag return the Tag of user's data
func (*BackflowFrame) SetCarriage ¶ added in v1.8.0
func (f *BackflowFrame) SetCarriage(buf []byte) *BackflowFrame
SetCarriage sets the user's raw data
func (*BackflowFrame) Type ¶ added in v1.8.0
func (f *BackflowFrame) Type() Type
Type gets the type of Frame.
type DataFrame ¶
type DataFrame struct {
// contains filtered or unexported fields
}
DataFrame defines the data structure carried with user's data transferring within YoMo
func DecodeToDataFrame ¶
DecodeToDataFrame decode Y3 encoded bytes to `DataFrame`
func NewDataFrame ¶
func NewDataFrame() (data *DataFrame)
NewDataFrame create `DataFrame` with a transactionID string, consider change transactionID to UUID type later
func (*DataFrame) GetCarriage ¶
GetCarriage return user's raw data in `DataFrame`
func (*DataFrame) GetDataTag ¶
GetDataTag return the Tag of user's data
func (*DataFrame) GetMetaFrame ¶
GetMetaFrame return MetaFrame.
func (*DataFrame) IsBroadcast ¶ added in v1.9.0
IsBroadcast returns the broadcast mode is enabled
func (*DataFrame) SetBroadcast ¶ added in v1.9.0
SetBroadcast set broadcast mode
func (*DataFrame) SetCarriage ¶
SetCarriage set user's raw data in `DataFrame`
func (*DataFrame) SetSourceID ¶ added in v1.8.0
SetSourceID set the source ID.
func (*DataFrame) SetTransactionID ¶
SetTransactionID set transactionID string
func (*DataFrame) TransactionID ¶
TransactionID return transactionID string
type Frame ¶
type Frame interface { // Type gets the type of Frame. Type() Type // Encode the frame into []byte. Encode() []byte }
Frame is the inferface for frame.
type GoawayFrame ¶ added in v1.7.3
type GoawayFrame struct {
// contains filtered or unexported fields
}
GoawayFrame is a Y3 encoded bytes, Tag is a fixed value TYPE_ID_GOAWAY_FRAME
func DecodeToGoawayFrame ¶ added in v1.7.3
func DecodeToGoawayFrame(buf []byte) (*GoawayFrame, error)
DecodeToGoawayFrame decodes Y3 encoded bytes to GoawayFrame
func NewGoawayFrame ¶ added in v1.7.3
func NewGoawayFrame(msg string) *GoawayFrame
NewGoawayFrame creates a new GoawayFrame
func (*GoawayFrame) Encode ¶ added in v1.7.3
func (f *GoawayFrame) Encode() []byte
Encode to Y3 encoded bytes
func (*GoawayFrame) Message ¶ added in v1.7.3
func (f *GoawayFrame) Message() string
Message goaway message
func (*GoawayFrame) Type ¶ added in v1.7.3
func (f *GoawayFrame) Type() Type
Type gets the type of Frame.
type HandshakeAckFrame ¶ added in v1.10.0
type HandshakeAckFrame struct {
// contains filtered or unexported fields
}
HandshakeAckFrame is used to ack handshake, It is always that the first frame is HandshakeAckFrame after client acquire a new stream. HandshakeAckFrame is a Y3 encoded bytes.
func DecodeToHandshakeAckFrame ¶ added in v1.10.0
func DecodeToHandshakeAckFrame(buf []byte) (*HandshakeAckFrame, error)
DecodeToHandshakeAckFrame decodes Y3 encoded bytes to HandshakeAckFrame
func NewHandshakeAckFrame ¶ added in v1.10.0
func NewHandshakeAckFrame(streamID string) *HandshakeAckFrame
NewHandshakeAckFrame returns a HandshakeAckFrame.
func (*HandshakeAckFrame) Encode ¶ added in v1.10.0
func (f *HandshakeAckFrame) Encode() []byte
Encode encodes HandshakeAckFrame to Y3 encoded bytes.
func (*HandshakeAckFrame) StreamID ¶ added in v1.11.0
func (f *HandshakeAckFrame) StreamID() string
StreamID returns the id of stream be acked.
func (*HandshakeAckFrame) Type ¶ added in v1.10.0
func (f *HandshakeAckFrame) Type() Type
Type gets the type of the HandshakeAckFrame.
type HandshakeFrame ¶
type HandshakeFrame struct {
// contains filtered or unexported fields
}
HandshakeFrame is the frame that client accquires new dataStream from server, It includes some of the information necessary to create a new dataStream. Server creates dataStream based on this information.
func DecodeToHandshakeFrame ¶
func DecodeToHandshakeFrame(buf []byte) (*HandshakeFrame, error)
DecodeToHandshakeFrame decodes HandshakeFrame from bytes.
func NewHandshakeFrame ¶
func NewHandshakeFrame(name string, id string, stream byte, observeDataTags []Tag, metadata []byte) *HandshakeFrame
NewHandshakeFrame returns HandshakeFrame.
func (*HandshakeFrame) Encode ¶
func (h *HandshakeFrame) Encode() []byte
Encode encodes HandshakeFrame to bytes in Y3 codec.
func (*HandshakeFrame) ID ¶ added in v1.11.0
func (h *HandshakeFrame) ID() string
ID represents the dataStream ID, the ID must be an unique string.
func (*HandshakeFrame) Metadata ¶ added in v1.11.0
func (h *HandshakeFrame) Metadata() []byte
Metadata holds stream metadata, metadata stores information for route the data.
func (*HandshakeFrame) Name ¶
func (h *HandshakeFrame) Name() string
Name is the name of dataStream.
func (*HandshakeFrame) ObserveDataTags ¶ added in v1.6.0
func (h *HandshakeFrame) ObserveDataTags() []Tag
ObserveDataTags are the stream data tag list.
func (*HandshakeFrame) StreamType ¶ added in v1.11.0
func (h *HandshakeFrame) StreamType() byte
StreamType represents dataStream type (Source | SFN | UpstreamZipper). different StreamType has different behaviors in server side.
func (*HandshakeFrame) Type ¶
func (h *HandshakeFrame) Type() Type
Type returns the type of HandshakeFrame.
type HandshakeRejectedFrame ¶ added in v1.12.0
type HandshakeRejectedFrame struct {
// contains filtered or unexported fields
}
HandshakeRejectedFrame be used to reject a Handshake. HandshakeRejectedFrame is a Y3 encoded bytes.
func DecodeToHandshakeRejectedFrame ¶ added in v1.12.0
func DecodeToHandshakeRejectedFrame(buf []byte) (*HandshakeRejectedFrame, error)
DecodeToHandshakeRejectedFrame decodes Y3 encoded bytes to HandshakeRejectedFrame.
func NewHandshakeRejectedFrame ¶ added in v1.12.0
func NewHandshakeRejectedFrame(streamID, reason string) *HandshakeRejectedFrame
NewHandshakeRejectedFrame returns a HandshakeRejectedFrame.
func (*HandshakeRejectedFrame) Encode ¶ added in v1.12.0
func (f *HandshakeRejectedFrame) Encode() []byte
Encode encodes HandshakeRejectedFrame to Y3 encoded bytes.
func (*HandshakeRejectedFrame) Reason ¶ added in v1.12.0
func (f *HandshakeRejectedFrame) Reason() string
Reason returns the reason for the rejection of a Handshake, if it was rejected.
func (*HandshakeRejectedFrame) StreamID ¶ added in v1.12.0
func (f *HandshakeRejectedFrame) StreamID() string
StreamID returns the streamID of handshake be rejected.
func (*HandshakeRejectedFrame) Type ¶ added in v1.12.0
func (f *HandshakeRejectedFrame) Type() Type
Type gets the type of the HandshakeRejectedFrame.
type MetaFrame ¶
type MetaFrame struct {
// contains filtered or unexported fields
}
MetaFrame is a Y3 encoded bytes, SeqID is a fixed value of TYPE_ID_TRANSACTION. used for describes metadata for a DataFrame.
func (*MetaFrame) IsBroadcast ¶ added in v1.9.0
IsBroadcast returns the broadcast mode is enabled
func (*MetaFrame) SetBroadcast ¶ added in v1.9.0
SetBroadcast set broadcast mode
func (*MetaFrame) SetMetadata ¶ added in v1.7.4
SetMetadata set the extra info of the application
func (*MetaFrame) SetSourceID ¶ added in v1.8.0
SetSourceID set the source ID.
func (*MetaFrame) SetTransactionID ¶
SetTransactionID set the transaction ID.
func (*MetaFrame) TransactionID ¶
TransactionID returns transactionID
type PayloadFrame ¶
PayloadFrame is a Y3 encoded bytes, Tag is a fixed value TYPE_ID_PAYLOAD_FRAME the Len is the length of Val. Val is also a Y3 encoded PrimitivePacket, storing raw bytes as user's data
func (*PayloadFrame) SetCarriage ¶
func (m *PayloadFrame) SetCarriage(buf []byte) *PayloadFrame
SetCarriage sets the user's raw data
type ReadWriter ¶ added in v1.10.0
ReadWriter is the interface that groups the ReadFrame and WriteFrame methods.
type Reader ¶ added in v1.10.0
type Reader interface { // ReadFrame reads frame, if error, the error returned is not empty // and frame returned is nil. ReadFrame() (Frame, error) }
Reader reads frame from underlying stream.
type RejectedFrame ¶
type RejectedFrame struct {
// contains filtered or unexported fields
}
RejectedFrame is a Y3 encoded bytes, Tag is a fixed value TYPE_ID_REJECTED_FRAME
func DecodeToRejectedFrame ¶
func DecodeToRejectedFrame(buf []byte) (*RejectedFrame, error)
DecodeToRejectedFrame decodes Y3 encoded bytes to RejectedFrame
func NewRejectedFrame ¶
func NewRejectedFrame(msg string) *RejectedFrame
NewRejectedFrame creates a new RejectedFrame with a given TagID of user's data
func (*RejectedFrame) Message ¶ added in v1.7.3
func (f *RejectedFrame) Message() string
Message rejected message
type Type ¶
type Type uint8
Type represents the type of frame.
const ( // DataFrame TagOfDataFrame Type = 0x3F // MetaFrame of DataFrame TagOfMetaFrame Type = 0x2F TagOfMetadata Type = 0x03 TagOfTransactionID Type = 0x01 TagOfSourceID Type = 0x02 TagOfBroadcast Type = 0x04 // PayloadFrame of DataFrame TagOfPayloadFrame Type = 0x2E TagOfPayloadDataTag Type = 0x01 TagOfPayloadCarriage Type = 0x02 TagOfBackflowFrame Type = 0x2D TagOfBackflowDataTag Type = 0x01 TagOfBackflowCarriage Type = 0x02 TagOfTokenFrame Type = 0x3E // AuthenticationFrame TagOfAuthenticationFrame Type = 0x03 TagOfAuthenticationName Type = 0x04 TagOfAuthenticationPayload Type = 0x05 // AuthenticationRespFrame TagOfAuthenticationRespFrame Type = 0x11 TagOfAuthenticationRespOk Type = 0x12 TagOfAuthenticationRespReason Type = 0x13 // HandshakeFrame TagOfHandshakeFrame Type = 0x31 TagOfHandshakeName Type = 0x01 TagOfHandshakeStreamType Type = 0x02 TagOfHandshakeID Type = 0x03 TagOfHandshakeObserveDataTags Type = 0x06 TagOfHandshakeMetadata Type = 0x07 // HandshakeRejectedFrame TagOfHandshakeRejectedFrame Type = 0x14 TagOfHandshakeRejectedStreamID Type = 0x15 TagOfHandshakeRejectedReason Type = 0x16 // TagOfHandshakeAckFrame TagOfHandshakeAckFrame Type = 0x29 TagOfHandshakeAckStreamID Type = 0x28 TagOfPingFrame Type = 0x3C TagOfPongFrame Type = 0x3B TagOfAcceptedFrame Type = 0x3A TagOfRejectedFrame Type = 0x39 TagOfRejectedMessage Type = 0x02 // GoawayFrame TagOfGoawayFrame Type = 0x30 TagOfGoawayCode Type = 0x01 TagOfGoawayMessage Type = 0x02 )
Kinds of frames transferable within YoMo