socket

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AsyncClient

type AsyncClient[T Packer, P any] struct {
	// contains filtered or unexported fields
}

func NewAsyncClient

func NewAsyncClient[T Packer, P any](client asyncClient[T, P]) *AsyncClient[T, P]

func (AsyncClient) Code

func (s AsyncClient) Code() uint32

func (AsyncClient) Conn

func (s AsyncClient) Conn() T

func (*AsyncClient[T, P]) Emit

func (c *AsyncClient[T, P]) Emit(event string, data []byte) (*Stream[T], error)

func (AsyncClient) Event

func (s AsyncClient) Event() string

func (*AsyncClient[T, P]) JsonEmit

func (c *AsyncClient[T, P]) JsonEmit(event string, data any) (*Stream[T], error)

func (AsyncClient) MessageID

func (s AsyncClient) MessageID() uint64

func (AsyncClient) MessageType

func (s AsyncClient) MessageType() byte

func (*AsyncClient[T, P]) ProtoBufEmit

func (c *AsyncClient[T, P]) ProtoBufEmit(event string, data proto.Message) (*Stream[T], error)

func (AsyncClient) Respond

func (s AsyncClient) Respond(data any) error

func (AsyncClient) SetCode

func (s AsyncClient) SetCode(code uint32)

func (AsyncClient) SetMessageID

func (s AsyncClient) SetMessageID(messageID uint64)

func (AsyncClient) SetMessageType

func (s AsyncClient) SetMessageType(messageType byte)

type Emitter

type Emitter[T Packer] interface {
	JsonEmit(event string, data any) error
	ProtoBufEmit(event string, data proto.Message) error
	Emit(event string, data []byte) error

	SetCode(code uint32)
	Code() uint32
	SetMessageID(messageID uint64)
	MessageID() uint64
	SetMessageType(messageType byte)
	MessageType() byte
	Event() string
	Conn() T
}

func NewSender

func NewSender[T Packer](conn T) Emitter[T]

NewSender returns a new Sender. Emit JsonEmit ProtoBufEmit it safe for concurrent use by multiple goroutines, but set code and messageID is not safe.

type Packer

type Packer interface {
	Pack(order uint32, messageType byte, code uint32, messageID uint64, route []byte, body []byte) error
	UnPack(msg []byte) (order uint32, messageType byte, code uint32, messageID uint64, route []byte, body []byte)
	Push(msg []byte) error
}

type Params

type Params map[string]string

func (Params) Get

func (ps Params) Get(name string) string

type Server

type Server[T Packer, P any] struct {
	// contains filtered or unexported fields
}

func NewAsyncServer

func NewAsyncServer[T Packer, P any](server server[T, P]) *Server[T, P]

func (*Server[T, P]) Sender

func (s *Server[T, P]) Sender(fd int64) (*ServerSender[T, P], error)

type ServerSender

type ServerSender[T Packer, P any] struct {
	// contains filtered or unexported fields
}

func (ServerSender) Code

func (s ServerSender) Code() uint32

func (ServerSender) Conn

func (s ServerSender) Conn() T

func (*ServerSender[T, P]) Emit

func (s *ServerSender[T, P]) Emit(event string, data []byte) (*Stream[T], error)

func (ServerSender) Event

func (s ServerSender) Event() string

func (*ServerSender[T, P]) JsonEmit

func (s *ServerSender[T, P]) JsonEmit(event string, data any) (*Stream[T], error)

func (ServerSender) MessageID

func (s ServerSender) MessageID() uint64

func (ServerSender) MessageType

func (s ServerSender) MessageType() byte

func (*ServerSender[T, P]) ProtoBufEmit

func (s *ServerSender[T, P]) ProtoBufEmit(event string, data proto.Message) (*Stream[T], error)

func (ServerSender) Respond

func (s ServerSender) Respond(data any) error

func (ServerSender) SetCode

func (s ServerSender) SetCode(code uint32)

func (ServerSender) SetMessageID

func (s ServerSender) SetMessageID(messageID uint64)

func (ServerSender) SetMessageType

func (s ServerSender) SetMessageType(messageType byte)

type Stream

type Stream[T Packer] struct {
	Time time.Time

	Context kitty.Context
	Logger  kitty.Logger
	Params  Params
	// contains filtered or unexported fields
}

func NewStream

func NewStream[T Packer](conn T, order uint32, messageType byte, code uint32, id uint64, route []byte, body []byte) *Stream[T]

func (Stream) Code

func (s Stream) Code() uint32

func (Stream) Conn

func (s Stream) Conn() T

func (*Stream[T]) Data

func (s *Stream[T]) Data() []byte

func (*Stream[T]) Emit

func (s *Stream[T]) Emit(event string, data []byte) error

func (Stream) Event

func (s Stream) Event() string

func (*Stream[T]) JsonEmit

func (s *Stream[T]) JsonEmit(event string, data any) error

func (Stream) MessageID

func (s Stream) MessageID() uint64

func (Stream) MessageType

func (s Stream) MessageType() byte

func (*Stream[T]) ProtoBufEmit

func (s *Stream[T]) ProtoBufEmit(event string, data proto.Message) error

func (*Stream[T]) Respond

func (s *Stream[T]) Respond(data any) error

func (Stream) SetCode

func (s Stream) SetCode(code uint32)

func (Stream) SetMessageID

func (s Stream) SetMessageID(messageID uint64)

func (Stream) SetMessageType

func (s Stream) SetMessageType(messageType byte)

Directories

Path Synopsis
tcp
udp
websocket

Jump to

Keyboard shortcuts

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