transport

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithSocketRoomFilter

func WithSocketRoomFilter(fn func(Namespace, Room, SocketID) (bool, error)) option

Types

type AddSetter

type AddSetter interface {
	Add(eiot.Transporter) (SocketID, error)
	Set(SocketID, eiot.Transporter) error
}

type Closer

type Closer interface {
	Shutdown(socketID SocketID)
}

type Data

type Data interface{} // The Data packet type

type Emitter

type Emitter interface {
	Sender

	Sockets(ns Namespace) SocketArray
	Rooms(ns Namespace, id SocketID) RoomArray
}

type JoinLeaver

type JoinLeaver interface {
	Join(Namespace, SocketID, Room) error
	Leave(Namespace, SocketID, Room) error
}

type Namespace

type Namespace = string

type Option

type Option = siop.Option

The functional option that can be used with Packets

type Room

type Room = string

type RoomArray

type RoomArray struct {
	Rooms []Room
}

func (RoomArray) Names

func (a RoomArray) Names() []Room

type SendReceiver

type SendReceiver interface {
	Sender
	Receive(socketID SocketID) <-chan Socket
}

type Sender

type Sender interface {
	Send(SocketID, Data, ...Option) error
}

type SessionID

type SessionID = eios.ID

The EngineIO session ID

type Socket

type Socket struct {
	Type      byte
	Namespace string
	AckID     uint64
	Data      Data
}

Socket is a generic socket that is passed to the emit function during execution

type SocketArray

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

func InitSocketArray

func InitSocketArray(ns Namespace, ids []SocketID, opts ...func(optionWith)) SocketArray

func (SocketArray) FromRoom

func (a SocketArray) FromRoom(rm Room) (rtn []SocketID, err error)

func (SocketArray) IDs

func (a SocketArray) IDs() []SocketID

func (SocketArray) LocalWith

func (a SocketArray) LocalWith(id SocketID) (rtn []SocketID, err error)

func (*SocketArray) With

func (a *SocketArray) With(opts ...option)

type SocketID

type SocketID = sios.ID

The SocketID session ID

type Transport

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

Transport facilitates transferring between the SocketIO transport which is in-memory or something like redis to the EngineIO transport which is HTTP long polling, Websockets or Server-Side events

func NewTransport

func NewTransport(id SocketID, eioTransport eiot.Transporter, fn siop.NewPacket) *Transport

func (*Transport) Receive

func (t *Transport) Receive() <-chan Socket

func (*Transport) Send

func (t *Transport) Send(data Data, opts ...Option)

func (*Transport) SendBuffer

func (t *Transport) SendBuffer()

func (*Transport) Shutdown

func (t *Transport) Shutdown()

func (Transport) StartBuffer

func (buf Transport) StartBuffer() func()

StartBuffer starts buffering EngineIO packets

func (Transport) StopBuffer

func (buf Transport) StopBuffer()

StopBuffer stops buffering EngineIO packets

type Transporter

type Transporter interface {
	AddSetter
	JoinLeaver
	SendReceiver
	Closer

	AckID() uint64
}

Jump to

Keyboard shortcuts

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