transports

package
v2.4.13 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2025 License: MIT Imports: 25 Imported by: 1

Documentation

Index

Constants

View Source
const (
	POLLING      string = "polling"
	WEBSOCKET    string = "websocket"
	WEBTRANSPORT string = "webtransport"
)

Variables

This section is empty.

Functions

func Transports

func Transports() map[string]TransportCtor

Types

type Jsonp

type Jsonp interface {
	Polling
}

func MakeJSONP

func MakeJSONP() Jsonp

JSON-P polling transport.

func NewJSONP

func NewJSONP(ctx *types.HttpContext) Jsonp

type Polling

type Polling interface {
	Transport

	DoWrite(*types.HttpContext, types.BufferInterface, *packet.Options, func(error))
}

func MakePolling

func MakePolling() Polling

HTTP polling New.

func NewPolling

func NewPolling(ctx *types.HttpContext) Polling

type PollingBuilder added in v2.4.7

type PollingBuilder struct{}

func (*PollingBuilder) HandlesUpgrades added in v2.4.7

func (*PollingBuilder) HandlesUpgrades() bool

func (*PollingBuilder) Name added in v2.4.7

func (*PollingBuilder) Name() string

func (*PollingBuilder) New added in v2.4.7

func (*PollingBuilder) UpgradesTo added in v2.4.7

func (*PollingBuilder) UpgradesTo() *types.Set[string]

Todo: Return []string

type Transport

type Transport interface {
	events.EventEmitter

	Prototype(Transport)
	Proto() Transport

	SetSid(string)
	SetWritable(bool)

	SetSupportsBinary(bool)
	SetReadyState(string)
	SetHttpCompression(*types.HttpCompression)
	SetPerMessageDeflate(*types.PerMessageDeflate)
	SetMaxHttpBufferSize(int64)

	// The session ID.
	Sid() string
	// Whether the transport is currently ready to send packets.
	Writable() bool
	// The revision of the protocol:
	//
	// - 3 is used in Engine.IO v3 / Socket.IO v2
	// - 4 is used in Engine.IO v4 and above / Socket.IO v3 and above
	//
	// It is found in the `EIO` query parameters of the HTTP requests.
	//
	// See https://github.com/socketio/engine.io-protocol
	Protocol() int
	// Whether the transport is discarded and can be safely closed (used during upgrade).
	//
	// Protected
	Discarded() bool
	// The parser to use (depends on the revision of the {@link Transport#protocol}.
	//
	// Protected
	Parser() parser.Parser
	// Whether the transport supports binary payloads (else it will be base64-encoded)
	//
	// Protected
	SupportsBinary() bool
	// The current state of the transport.
	//
	// Protected
	ReadyState() string
	HttpCompression() *types.HttpCompression
	PerMessageDeflate() *types.PerMessageDeflate
	MaxHttpBufferSize() int64
	// Abstract
	HandlesUpgrades() bool
	// Abstract
	Name() string

	// [Transport.Construct] should be called after calling [Transport.Prototype]
	Construct(*types.HttpContext)
	// Private
	//
	// Flags the transport as discarded.
	Discard()
	// Protected
	//
	// Called with an incoming HTTP request.
	OnRequest(*types.HttpContext)
	// Private
	//
	// Closes the transport.
	Close(...types.Callable)
	// Protected
	//
	// Called with a transport error.
	OnError(string, error)
	// Protected
	//
	// Called with parsed out a packets from the data stream.
	OnPacket(*packet.Packet)
	// Protected
	//
	// Called with the encoded packet data.
	OnData(types.BufferInterface)
	// Protected
	//
	// Called upon transport close.
	OnClose()
	// Protected
	//
	// Writes a packet payload.
	Send([]*packet.Packet)
	// Protected
	//
	// Closes the transport.
	DoClose(types.Callable)
}

func MakeTransport

func MakeTransport() Transport

func NewTransport

func NewTransport(ctx *types.HttpContext) Transport

type TransportCtor added in v2.4.7

type TransportCtor interface {
	New(*types.HttpContext) Transport
	HandlesUpgrades() bool
	// Todo: Return []string
	UpgradesTo() *types.Set[string]
}

type WebSocketBuilder added in v2.4.7

type WebSocketBuilder struct{}

func (*WebSocketBuilder) HandlesUpgrades added in v2.4.7

func (*WebSocketBuilder) HandlesUpgrades() bool

func (*WebSocketBuilder) Name added in v2.4.7

func (*WebSocketBuilder) Name() string

func (*WebSocketBuilder) New added in v2.4.7

func (*WebSocketBuilder) UpgradesTo added in v2.4.7

func (*WebSocketBuilder) UpgradesTo() *types.Set[string]

Todo: Return []string

type WebTransport

type WebTransport interface {
	Transport
}

func MakeWebTransport

func MakeWebTransport() WebTransport

WebTransport transport

func NewWebTransport

func NewWebTransport(ctx *types.HttpContext) WebTransport

type WebTransportBuilder added in v2.4.7

type WebTransportBuilder struct{}

func (*WebTransportBuilder) HandlesUpgrades added in v2.4.7

func (*WebTransportBuilder) HandlesUpgrades() bool

func (*WebTransportBuilder) Name added in v2.4.7

func (*WebTransportBuilder) Name() string

func (*WebTransportBuilder) New added in v2.4.7

func (*WebTransportBuilder) UpgradesTo added in v2.4.7

func (*WebTransportBuilder) UpgradesTo() *types.Set[string]

Todo: Return []string

type Websocket

type Websocket interface {
	Transport
}

func MakeWebSocket

func MakeWebSocket() Websocket

WebSocket transport

func NewWebSocket

func NewWebSocket(ctx *types.HttpContext) Websocket

Jump to

Keyboard shortcuts

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