transport

package
v0.0.0-...-f0f9645 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrDecodeFailed        erro.StringF = "failed to decode the %q transport:: %w"
	ErrEncodeFailed        erro.StringF = "failed to encode the %q transport:: %w"
	ErrUnimplementedMethod erro.StringF = "unimplemented %s method"
	ErrCloseSocket         erro.State   = "socket: closed"
	ErrTimeoutSocket       erro.State   = "socket: timeout"
)

Variables

This section is empty.

Functions

func NewPollingTransport

func NewPollingTransport(chanBuf int) func(SessionID, Codec) Transporter

func NewWebsocketTransport

func NewWebsocketTransport(chanBuf int) func(SessionID, Codec) Transporter

Types

type HTTPCompressionKind

type HTTPCompressionKind string
const (
	CompressGZIP HTTPCompressionKind = "gzip"
)

type Name

type Name string
const (
	Polling Name = "polling"
)
const Websocket Name = "websocket"

func (Name) String

func (name Name) String() string

type Option

type Option = with.Option

func OnInitProbe

func OnInitProbe(b bool) Option

func OnUpgrade

func OnUpgrade(fn func() error) Option

func WithBufferedReader

func WithBufferedReader() Option

func WithCodec

func WithCodec(codec Codec) Option

func WithGovernor

func WithGovernor(minTime, sleep time.Duration) Option

func WithHTTPCompression

func WithHTTPCompression(kind HTTPCompressionKind) Option

func WithNoPing

func WithNoPing() Option

func WithPerMessageDeflate

func WithPerMessageDeflate(kind HTTPCompressionKind) Option

func WithPollingSleep

func WithPollingSleep(d time.Duration) Option

type OptionWith

type OptionWith = with.OptionWith

type PollingTransport

type PollingTransport struct {
	*Transport
	// contains filtered or unexported fields
}

func (*PollingTransport) InnerTransport

func (t *PollingTransport) InnerTransport() *Transport

func (*PollingTransport) Run

func (t *PollingTransport) Run(w http.ResponseWriter, r *http.Request, opts ...Option) (err error)

func (*PollingTransport) With

func (t *PollingTransport) With(opts ...Option)

func (*PollingTransport) Write

type SessionID

type SessionID = eios.ID

type StartWriteBuffer

type StartWriteBuffer func() bool

func (StartWriteBuffer) Len

func (StartWriteBuffer) Len() int

type Transport

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

func (*Transport) ID

func (t *Transport) ID() SessionID

func (*Transport) Name

func (t *Transport) Name() Name

func (*Transport) Receive

func (t *Transport) Receive() <-chan eiop.Packet

func (*Transport) ReceiveTimeout

func (t *Transport) ReceiveTimeout() <-chan SessionID

func (*Transport) Send

func (t *Transport) Send(packet eiop.Packet)

func (*Transport) SendTimeout

func (t *Transport) SendTimeout()

func (*Transport) Shutdown

func (t *Transport) Shutdown()

func (*Transport) Transport

func (t *Transport) Transport() *Transport

type Transporter

type Transporter interface {
	ID() SessionID
	Name() Name
	Send(eiop.Packet)
	Receive() <-chan eiop.Packet
	SendTimeout()
	ReceiveTimeout() <-chan SessionID
	Run(http.ResponseWriter, *http.Request, ...Option) error

	Shutdown()
}

type WaitGroup

type WaitGroup interface {
	Add(int)
	Done()
	Wait()
}

type WebsocketTransport

type WebsocketTransport struct {
	*Transport

	PingMsg string
	// contains filtered or unexported fields
}

func (*WebsocketTransport) ConnClose

func (t *WebsocketTransport) ConnClose(code ws.StatusCode, reason string, ctx context.Context) error

func (*WebsocketTransport) InnerTransport

func (t *WebsocketTransport) InnerTransport() *Transport

func (*WebsocketTransport) Run

func (t *WebsocketTransport) Run(w http.ResponseWriter, r *http.Request, opts ...Option) (err error)

func (*WebsocketTransport) With

func (t *WebsocketTransport) With(opts ...Option)

type WriteClose

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

func (WriteClose) SocketCloseChannel

func (wc WriteClose) SocketCloseChannel() error

Jump to

Keyboard shortcuts

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