protocol

package
v0.0.0-...-73e4950 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrUnexpectedPacketType  erro.StringF = "unexpected packet type %T"
	ErrUnexpectedPacketData  erro.StringF = "unexpected packet data %T"
	ErrUnexpectedHandshake   erro.StringF = "expected %s, found %T"
	ErrDecodeHandshakeFailed erro.StringF = "failed to decode handshake:: %w"
	ErrEncodeHandshakeFailed erro.StringF = "failed to encode handshake:: %w"
	ErrDecodePacketFailed    erro.StringF = "failed to decode packet:: %w"
	ErrEncodePacketFailed    erro.StringF = "failed to encode packet:: %w"
	ErrDecodePayloadFailed   erro.StringF = "failed to decode payload:: %w"
	ErrEncodePayloadFailed   erro.StringF = "failed to encode payload:: %w"
	EOR                      erro.StringF = "End Of Record: %w"
)
View Source
const RecordSeparator = 0x1e

Variables

View Source
var NewPacketDecoderV2 _packetDecoderV2 = func(r io.Reader) *PacketDecoderV2 {
	return &PacketDecoderV2{read: rw.NewReader(r)}
}
View Source
var NewPacketDecoderV3 _packetDecoderV3 = func(r io.Reader) *PacketDecoderV3 {
	return &PacketDecoderV3{PacketDecoderV2: &PacketDecoderV2{read: rw.NewReader(r)}}
}
View Source
var NewPacketDecoderV4 _packetDecoderV4 = func(r io.Reader) *PacketDecoderV4 {
	return &PacketDecoderV4{PacketDecoderV3: &PacketDecoderV3{PacketDecoderV2: &PacketDecoderV2{read: rw.NewReader(r)}}}
}
View Source
var NewPacketEncoderV2 _packetEncoderV2 = func(w io.Writer) *PacketEncoderV2 {
	return &PacketEncoderV2{write: rw.NewWriter(w)}
}
View Source
var NewPacketEncoderV3 _packetEncoderV3 = func(w io.Writer) *PacketEncoderV3 {
	return &PacketEncoderV3{PacketEncoderV2: &PacketEncoderV2{write: rw.NewWriter(w)}}
}
View Source
var NewPacketEncoderV4 _packetEncoderV4 = func(w io.Writer) *PacketEncoderV4 {
	return &PacketEncoderV4{&PacketEncoderV3{PacketEncoderV2: &PacketEncoderV2{write: rw.NewWriter(w)}}}
}
View Source
var NewPayloadDecoderV2 _payloadDecoderV2 = func(r io.Reader) *PayloadDecoderV2 {
	return &PayloadDecoderV2{read: &reader{Reader: rw.NewReader(r)}}
}
View Source
var NewPayloadDecoderV3 _payloadDecoderV3 = func(r io.Reader) *PayloadDecoderV3 {
	return &PayloadDecoderV3{PayloadDecoderV2: &PayloadDecoderV2{read: &reader{Reader: rw.NewReader(r)}}}
}
View Source
var NewPayloadDecoderV4 _payloadDecoderV4 = func(r io.Reader) *PayloadDecoderV4 {
	return &PayloadDecoderV4{
		PayloadDecoderV3: &PayloadDecoderV3{
			PayloadDecoderV2: &PayloadDecoderV2{read: &reader{Reader: rw.NewReader(r)}},
		},
	}
}
View Source
var NewPayloadEncoderV2 _payloadEncoderV2 = func(w io.Writer) *PayloadEncoderV2 {
	return &PayloadEncoderV2{write: &writer{Writer: rw.NewWriter(w)}}
}
View Source
var NewPayloadEncoderV3 _payloadEncoderV3 = func(w io.Writer) *PayloadEncoderV3 {
	return &PayloadEncoderV3{PayloadEncoderV2: &PayloadEncoderV2{write: &writer{Writer: rw.NewWriter(w)}}}
}
View Source
var NewPayloadEncoderV4 _payloadEncoderV4 = func(w io.Writer) *PayloadEncoderV4 {
	return &PayloadEncoderV4{
		PayloadEncoderV3: &PayloadEncoderV3{
			PayloadEncoderV2: &PayloadEncoderV2{write: &writer{Writer: rw.NewWriter(w)}},
		},
	}
}

Functions

func LimitRuneReader

func LimitRuneReader(r io.Reader, n int64) io.Reader

Types

type Duration

type Duration time.Duration

func (Duration) MarshalJSON

func (d Duration) MarshalJSON() (b []byte, err error)

func (*Duration) UnmarshalJSON

func (d *Duration) UnmarshalJSON(b []byte) error

type HandshakeV2

type HandshakeV2 struct {
	SID         string   `json:"sid"`
	Upgrades    []string `json:"upgrades"`
	PingTimeout Duration `json:"pingTimeout"`
}

func (*HandshakeV2) Len

func (h *HandshakeV2) Len() int

type HandshakeV3

type HandshakeV3 struct {
	*HandshakeV2
	PingInterval Duration `json:"pingInterval"`
}

func (*HandshakeV3) Len

func (h *HandshakeV3) Len() int

type HandshakeV4

type HandshakeV4 struct {
	*HandshakeV3
	MaxPayload int `json:"maxPayload"`
}

func (*HandshakeV4) Len

func (h *HandshakeV4) Len() int

type Packet

type Packet struct {
	T PacketType  `json:"type"`
	D interface{} `json:"data"`
	// contains filtered or unexported fields
}

func (Packet) Len

func (pac Packet) Len() int

func (*Packet) PacketRef

func (pac *Packet) PacketRef() *Packet

func (Packet) PacketVal

func (pac Packet) PacketVal() Packet

type PacketDecoder

type PacketDecoder interface{ From(io.Reader) PacketReader }

type PacketDecoderV2

type PacketDecoderV2 struct {
	// contains filtered or unexported fields
}

func (*PacketDecoderV2) Decode

func (dec *PacketDecoderV2) Decode(packet *PacketV2) error

type PacketDecoderV3

type PacketDecoderV3 struct{ *PacketDecoderV2 }

func (*PacketDecoderV3) Decode

func (dec *PacketDecoderV3) Decode(packet *PacketV3) error

type PacketDecoderV4

type PacketDecoderV4 struct{ *PacketDecoderV3 }

func (*PacketDecoderV4) Decode

func (dec *PacketDecoderV4) Decode(packet *PacketV4) error

type PacketEncoder

type PacketEncoder interface{ To(io.Writer) PacketWriter }

type PacketEncoderV2

type PacketEncoderV2 struct {
	// contains filtered or unexported fields
}

func (*PacketEncoderV2) Encode

func (enc *PacketEncoderV2) Encode(packet PacketV2) (err error)

type PacketEncoderV3

type PacketEncoderV3 struct{ *PacketEncoderV2 }

func (*PacketEncoderV3) Encode

func (enc *PacketEncoderV3) Encode(packet PacketV3) (err error)

type PacketEncoderV4

type PacketEncoderV4 struct{ *PacketEncoderV3 }

func (*PacketEncoderV4) Encode

func (enc *PacketEncoderV4) Encode(packet PacketV4) (err error)

type PacketReader

type PacketReader interface{ ReadPacket(PacketRef) error }

type PacketRef

type PacketRef interface{ PacketRef() *Packet }

type PacketType

type PacketType byte
const (
	OpenPacket PacketType = iota
	ClosePacket
	PingPacket
	PongPacket
	MessagePacket
	UpgradePacket
	NoopPacket
)
const BinaryPacket PacketType = 255

func (PacketType) Bytes

func (pt PacketType) Bytes() []byte

func (*PacketType) Read

func (pt *PacketType) Read(p []byte) (n int, err error)

func (PacketType) String

func (pt PacketType) String() string

func (*PacketType) Write

func (pt *PacketType) Write(p []byte) (n int, err error)

type PacketV2

type PacketV2 struct{ Packet }

type PacketV3

type PacketV3 struct {
	PacketV2
	IsBinary bool
}

PacketV3 is defined: https://github.com/socketio/engine.io-protocol/tree/v3

func (*PacketV3) PacketRef

func (pac *PacketV3) PacketRef() *Packet

type PacketV4

type PacketV4 struct{ PacketV3 }

PacketV4 is a v3 with different binary handling

type PacketVal

type PacketVal interface{ PacketVal() Packet }

type PacketWriter

type PacketWriter interface{ WritePacket(PacketVal) error }

type Payload

type Payload []Packet

func (*Payload) PayloadRef

func (pay *Payload) PayloadRef() *Payload

func (Payload) PayloadVal

func (pay Payload) PayloadVal() Payload

type PayloadDecoder

type PayloadDecoder interface{ From(io.Reader) PayloadReader }

type PayloadDecoderV2

type PayloadDecoderV2 struct {
	// contains filtered or unexported fields
}

func (*PayloadDecoderV2) Decode

func (dec *PayloadDecoderV2) Decode(payload *PayloadV2) error

type PayloadDecoderV3

type PayloadDecoderV3 struct {
	*PayloadDecoderV2
	// contains filtered or unexported fields
}

func (*PayloadDecoderV3) Decode

func (dec *PayloadDecoderV3) Decode(payload *PayloadV3) error

type PayloadDecoderV4

type PayloadDecoderV4 struct{ *PayloadDecoderV3 }

func (*PayloadDecoderV4) Decode

func (dec *PayloadDecoderV4) Decode(payload *PayloadV4) (err error)

type PayloadEncoder

type PayloadEncoder interface{ To(io.Writer) PayloadWriter }

type PayloadEncoderV2

type PayloadEncoderV2 struct {
	// contains filtered or unexported fields
}

func (*PayloadEncoderV2) Encode

func (enc *PayloadEncoderV2) Encode(payload PayloadV2) error

type PayloadEncoderV3

type PayloadEncoderV3 struct {
	*PayloadEncoderV2
	// contains filtered or unexported fields
}

func (*PayloadEncoderV3) Encode

func (enc *PayloadEncoderV3) Encode(payload PayloadV3) error

type PayloadEncoderV4

type PayloadEncoderV4 struct{ *PayloadEncoderV3 }

func (*PayloadEncoderV4) Encode

func (enc *PayloadEncoderV4) Encode(payload PayloadV4) error

type PayloadReader

type PayloadReader interface{ ReadPayload(PayloadRef) error }

type PayloadRef

type PayloadRef interface{ PayloadRef() *Payload }

type PayloadV2

type PayloadV2 []PacketV2

PayloadV2 is defined: https://github.com/socketio/engine.io-protocol/tree/v2

func (PayloadV2) PayloadVal

func (pay PayloadV2) PayloadVal() Payload

type PayloadV3

type PayloadV3 []PacketV3

PayloadV3 is defined: https://github.com/socketio/engine.io-protocol/tree/v3

func (*PayloadV3) PayloadRef

func (pay *PayloadV3) PayloadRef() *Payload

func (PayloadV3) PayloadVal

func (pay PayloadV3) PayloadVal() Payload

type PayloadV4

type PayloadV4 []PacketV4

func (*PayloadV4) PayloadRef

func (pay *PayloadV4) PayloadRef() *Payload

func (PayloadV4) PayloadVal

func (pay PayloadV4) PayloadVal() Payload

type PayloadVal

type PayloadVal interface{ PayloadVal() Payload }

type PayloadWriter

type PayloadWriter interface{ WritePayload(PayloadVal) error }

Jump to

Keyboard shortcuts

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