net

package
v0.0.0-...-d9af017 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2017 License: Apache-2.0 Imports: 7 Imported by: 0

README

Nebula网络库

参考:https://github.com/funny/link

Documentation

Index

Constants

This section is empty.

Variables

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

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 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) Accept2

func (server *Server) Accept2() (*Session, error)

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 {
	State interface{}
	// 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

func (*Session) AddCloseCallback

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

func (*Session) Close

func (session *Session) Close() error

func (*Session) Codec

func (session *Session) Codec() Codec

func (*Session) ID

func (session *Session) ID() uint64

func (*Session) IsClosed

func (session *Session) IsClosed() bool

func (*Session) Receive

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

func (*Session) RemoveCloseCallback

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

func (*Session) Send

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

type SessionManager

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

func NewSessionManager

func NewSessionManager() *SessionManager

func (*SessionManager) Dispose

func (manager *SessionManager) Dispose()

func (*SessionManager) GetSession

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

func (*SessionManager) NewSession

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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