session

package
v0.0.0-...-1118e41 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2017 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MsgTypeRequest  uint8 = 1
	MsgTypeResponse uint8 = 2
	MsgTypeClose    uint8 = 3 // TODO: for close session
)

Variables

View Source
var (
	ErrMessageDataTooShort = errors.New("message data is too short")
)
View Source
var (
	ErrNoHandler = errors.New("no such handler")
)

Functions

This section is empty.

Types

type EMSG

type EMSG struct {
	Type    uint8
	ID      uint32
	Payload []byte
}

func LoadEMSG

func LoadEMSG(data []byte) (*EMSG, error)

func (*EMSG) Bytes

func (m *EMSG) Bytes() []byte

func (*EMSG) String

func (m *EMSG) String() string

type Manager

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

func NewManager

func NewManager(isServerSide bool, outbound chan []byte) *Manager

func (*Manager) Close

func (manager *Manager) Close()

func (*Manager) HandleIn

func (manager *Manager) HandleIn(payload []byte) error

func (*Manager) New

func (manager *Manager) New() (*Session, error)

func (*Manager) SetRequestHandler

func (manager *Manager) SetRequestHandler(hdr RequestHandler)

type Pool

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

func (*Pool) Delete

func (p *Pool) Delete(session *Session) error

func (*Pool) Exist

func (p *Pool) Exist(id uint32) bool

func (*Pool) Get

func (p *Pool) Get(id uint32) *Session

func (*Pool) IterBuffered

func (p *Pool) IterBuffered() <-chan PoolTuple

Returns a buffered iterator which could be used in a for range loop.

func (*Pool) New

func (p *Pool) New(outbound chan []byte) (*Session, error)

type PoolTuple

type PoolTuple struct {
	Key uint32
	Val *Session
}

Used by the Iter & IterBuffered functions to wrap two variables together over a channel,

type Request

type Request struct {
	Action string
	Body   []byte
}

type RequestHandler

type RequestHandler interface {
	Handle(*EMSG) *EMSG
}

RequestHandler define request-response handler func

type RequestHandlerFunc

type RequestHandlerFunc func(*Request) (*Response, error)

type Response

type Response struct {
	Status string
	Body   []byte
}

type Route

type Route struct {
	Action  string
	Handler RequestHandlerFunc
}

type Router

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

func NewRouter

func NewRouter() *Router

func (*Router) AddRoute

func (r *Router) AddRoute(route Route)

func (*Router) AddRoutes

func (r *Router) AddRoutes(routes []Route)

func (*Router) Dispatch

func (r *Router) Dispatch(req *Request) (resp *Response, err error)

type Session

type Session struct {
	ID uint32
	// contains filtered or unexported fields
}

func (*Session) Close

func (session *Session) Close()

func (*Session) HandleResponse

func (session *Session) HandleResponse(payload []byte) error

func (*Session) SendAndWait

func (session *Session) SendAndWait(r *Request) (resp *Response, err error)

func (*Session) SendJSONAndWait

func (session *Session) SendJSONAndWait(request interface{}, response interface{}) error

Jump to

Keyboard shortcuts

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