link

package module
v2022.10.20+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2022 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SessionClosedError  = errors.New("Session Closed")
	SessionBlockedError = errors.New("Session Blocked")
)

Functions

func Accept

func Accept(listener net.Listener) (net.Conn, error)

Types

type Channel

type Channel struct {

	// channel state
	State interface{}
	// contains filtered or unexported fields
}

func NewChannel

func NewChannel() *Channel

func (*Channel) Close

func (channel *Channel) Close()

func (*Channel) Fetch

func (channel *Channel) Fetch(callback func(*Session))

func (*Channel) FetchAndRemove

func (channel *Channel) FetchAndRemove(callback func(*Session))

func (*Channel) Get

func (channel *Channel) Get(key KEY) *Session

func (*Channel) Len

func (channel *Channel) Len() int

func (*Channel) Put

func (channel *Channel) Put(key KEY, session *Session)

func (*Channel) Remove

func (channel *Channel) Remove(key KEY) bool

type ClearSendChan

type ClearSendChan interface {
	ClearSendChan(<-chan interface{})
}

type Codec

type Codec interface {
	Receive() (interface{}, error)
	Send(interface{}) error
	Close() error
}

type Handler

type Handler interface {
	HandleSession(*Session)
}

type HandlerFunc

type HandlerFunc func(*Session)

func (HandlerFunc) HandleSession

func (f HandlerFunc) HandleSession(session *Session)

type KEY

type KEY interface{}

type Manager

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

func NewManager

func NewManager() *Manager

NewManager 创建管理器

func (*Manager) Dispose

func (manager *Manager) Dispose()

Dispose 关闭所有Session

func (*Manager) GetSession

func (manager *Manager) GetSession(sessionID uint64) *Session

GetSession 获取session

func (*Manager) NewSession

func (manager *Manager) NewSession(codec Codec, sendChanSize int) *Session

NewSession 新session

type Protocol

type Protocol interface {
	NewCodec(rw io.ReadWriter) (Codec, error)
}

type ProtocolFunc

type ProtocolFunc func(rw io.ReadWriter) (Codec, error)

func (ProtocolFunc) NewCodec

func (pf ProtocolFunc) NewCodec(rw io.ReadWriter) (Codec, error)

type Server

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

func Listen

func Listen(network, address string, protocol Protocol, sendChanSize int, handler Handler) (*Server, error)

func NewServer

func NewServer(listener net.Listener, protocol Protocol, sendChanSize int, handler Handler) *Server

func (*Server) GetSession

func (server *Server) GetSession(sessionID uint64) *Session

func (*Server) Listener

func (server *Server) Listener() net.Listener

func (*Server) Serve

func (server *Server) Serve() error

func (*Server) Stop

func (server *Server) Stop()

type Session

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

func Dial

func Dial(network, address string, protocol Protocol, sendChanSize int) (*Session, error)

func DialTimeout

func DialTimeout(network, address string, timeout time.Duration, protocol Protocol, sendChanSize int) (*Session, error)

func NewSession

func NewSession(codec Codec, sendChanSize int) *Session

NewSession 新session

func (*Session) AddCloseCallback

func (session *Session) AddCloseCallback(handler, key interface{}, callback func())

AddCloseCallback 添加关闭回调函数

func (*Session) Close

func (session *Session) Close() error

Close 关闭session

func (*Session) Codec

func (session *Session) Codec() Codec

Codec 当前编解码器

func (*Session) ID

func (session *Session) ID() uint64

ID 获取当前sessionID

func (*Session) IsClosed

func (session *Session) IsClosed() bool

IsClosed 是否关闭

func (*Session) Receive

func (session *Session) Receive() (interface{}, error)

Receive 接收消息

func (*Session) RemoveCloseCallback

func (session *Session) RemoveCloseCallback(handler, key interface{})

RemoveCloseCallback 删除关闭回调函数

func (*Session) Send

func (session *Session) Send(msg interface{}) error

Send 消息发送

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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