transports

package
v3.0.0-rc.13 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: MIT Imports: 25 Imported by: 2

Documentation

Overview

Package transports provides builder types for Engine.IO transport registration and instantiation.

Package transports provides initialization logic for Engine.IO transport registration.

Package transports implements the JSONP polling transport for Engine.IO.

Package transports implements the HTTP long-polling transport for Engine.IO.

Package transports provides implementations for Engine.IO transport types and constants.

Package transports provides implementations for Engine.IO transport mechanisms such as polling, WebSocket, and WebTransport.

Package transports implements the WebSocket transport for Engine.IO.

Package transports implements the WebTransport transport for Engine.IO.

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

type PollingBuilder struct{}

func (*PollingBuilder) HandlesUpgrades

func (*PollingBuilder) HandlesUpgrades() bool

func (*PollingBuilder) Name

func (*PollingBuilder) Name() string

func (*PollingBuilder) New

func (*PollingBuilder) UpgradesTo

func (*PollingBuilder) UpgradesTo() []string

type Transport

type Transport interface {
	types.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

type TransportCtor interface {
	HandlesUpgrades() bool
	Name() string
	New(*types.HttpContext) Transport
	UpgradesTo() []string
}

type WebSocketBuilder

type WebSocketBuilder struct{}

func (*WebSocketBuilder) HandlesUpgrades

func (*WebSocketBuilder) HandlesUpgrades() bool

func (*WebSocketBuilder) Name

func (*WebSocketBuilder) Name() string

func (*WebSocketBuilder) New

func (*WebSocketBuilder) UpgradesTo

func (*WebSocketBuilder) UpgradesTo() []string

type WebTransport

type WebTransport interface {
	Transport
}

func MakeWebTransport

func MakeWebTransport() WebTransport

WebTransport transport

func NewWebTransport

func NewWebTransport(ctx *types.HttpContext) WebTransport

type WebTransportBuilder

type WebTransportBuilder struct{}

func (*WebTransportBuilder) HandlesUpgrades

func (*WebTransportBuilder) HandlesUpgrades() bool

func (*WebTransportBuilder) Name

func (*WebTransportBuilder) Name() string

func (*WebTransportBuilder) New

func (*WebTransportBuilder) UpgradesTo

func (*WebTransportBuilder) UpgradesTo() []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