qnet

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2021 License: BSD-3-Clause Imports: 21 Imported by: 0

README

qnet

网络通信处理

TCP和Websocket通信的实现

Documentation

Index

Constants

View Source
const (
	StatBytesRecv   int = iota // bytes received
	StatBytesSent              // bytes sent
	StatPacketsRecv            // packets received
	StatPacketsSent            // packets sent
	NumStat
)
View Source
const (
	WSCONN_MAX_PAYLOAD = 16 * 1024 // 消息最大大小
)

Variables

View Source
var (
	ErrConnIsClosing        = errors.New("connection is closing when sending")
	ErrConnOutboundOverflow = errors.New("connection outbound queue overflow")
	ErrConnForceClose       = errors.New("connection forced to close")
)
View Source
var ErrBufferOutOfRange = errors.New("buffer out of range")
View Source
var (
	TConnReadTimeout = 200
)
View Source
var (
	WSConnReadTimeout = 100 * time.Second
)

Functions

func NewFakeConn

func NewFakeConn(node fatchoy.NodeID, addr string) fatchoy.Endpoint

Types

type Buffer

type Buffer struct {
	bytes.Buffer
}

func (*Buffer) PeekBool

func (b *Buffer) PeekBool() bool

func (*Buffer) PeekFloat32

func (b *Buffer) PeekFloat32() float32

func (*Buffer) PeekFloat64

func (b *Buffer) PeekFloat64() float64

func (*Buffer) PeekInt

func (b *Buffer) PeekInt() int

func (*Buffer) PeekInt16

func (b *Buffer) PeekInt16() int16

func (*Buffer) PeekInt32

func (b *Buffer) PeekInt32() int32

func (*Buffer) PeekInt64

func (b *Buffer) PeekInt64() int64

func (*Buffer) PeekInt8

func (b *Buffer) PeekInt8() int8

func (*Buffer) PeekUint

func (b *Buffer) PeekUint() uint

func (*Buffer) PeekUint16

func (b *Buffer) PeekUint16() uint16

func (*Buffer) PeekUint32

func (b *Buffer) PeekUint32() uint32

func (*Buffer) PeekUint64

func (b *Buffer) PeekUint64() uint64

func (*Buffer) PeekUint8

func (b *Buffer) PeekUint8() uint8

func (*Buffer) ReadBool

func (b *Buffer) ReadBool() bool

func (*Buffer) ReadFloat32

func (b *Buffer) ReadFloat32() float32

func (*Buffer) ReadFloat64

func (b *Buffer) ReadFloat64() float64

func (*Buffer) ReadInt

func (b *Buffer) ReadInt() int

func (*Buffer) ReadInt16

func (b *Buffer) ReadInt16() int16

func (*Buffer) ReadInt32

func (b *Buffer) ReadInt32() int32

func (*Buffer) ReadInt64

func (b *Buffer) ReadInt64() int64

func (*Buffer) ReadInt8

func (b *Buffer) ReadInt8() int8

func (*Buffer) ReadUint

func (b *Buffer) ReadUint() uint

func (*Buffer) ReadUint16

func (b *Buffer) ReadUint16() uint16

func (*Buffer) ReadUint32

func (b *Buffer) ReadUint32() uint32

func (*Buffer) ReadUint64

func (b *Buffer) ReadUint64() uint64

func (*Buffer) ReadUint8

func (b *Buffer) ReadUint8() uint8

func (*Buffer) WriteBool

func (b *Buffer) WriteBool(v bool)

func (*Buffer) WriteFloat32

func (b *Buffer) WriteFloat32(f float32)

func (*Buffer) WriteFloat64

func (b *Buffer) WriteFloat64(f float64)

func (*Buffer) WriteInt

func (b *Buffer) WriteInt(n int)

func (*Buffer) WriteInt16

func (b *Buffer) WriteInt16(n int16)

func (*Buffer) WriteInt32

func (b *Buffer) WriteInt32(n int32)

func (*Buffer) WriteInt64

func (b *Buffer) WriteInt64(n int64)

func (*Buffer) WriteInt8

func (b *Buffer) WriteInt8(n int8)

func (*Buffer) WriteUInt8

func (b *Buffer) WriteUInt8(n uint8)

func (*Buffer) WriteUint

func (b *Buffer) WriteUint(n uint)

func (*Buffer) WriteUint16

func (b *Buffer) WriteUint16(n uint16)

func (*Buffer) WriteUint32

func (b *Buffer) WriteUint32(n uint32)

func (*Buffer) WriteUint64

func (b *Buffer) WriteUint64(n uint64)

type Error

type Error struct {
	Err      error
	Endpoint fatchoy.Endpoint
}

func NewError

func NewError(err error, endpoint fatchoy.Endpoint) *Error

func (Error) Error

func (e Error) Error() string

type FakeConn

type FakeConn struct {
	StreamConn
}

a fake endpoint

func (*FakeConn) Close

func (c *FakeConn) Close() error

func (*FakeConn) ForceClose

func (c *FakeConn) ForceClose(error)

func (*FakeConn) Go

func (c *FakeConn) Go(flag fatchoy.EndpointFlag)

func (*FakeConn) RawConn

func (c *FakeConn) RawConn() net.Conn

func (*FakeConn) SendPacket

func (c *FakeConn) SendPacket(fatchoy.IPacket) error

type StreamConn

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

TcpConn和WsConn的公共基类

func (*StreamConn) IsClosing

func (c *StreamConn) IsClosing() bool

func (*StreamConn) NodeID

func (c *StreamConn) NodeID() fatchoy.NodeID

func (*StreamConn) RemoteAddr

func (c *StreamConn) RemoteAddr() string

func (*StreamConn) SetEncryptPair

func (c *StreamConn) SetEncryptPair(encrypt cipher.BlockCryptor, decrypt cipher.BlockCryptor)

func (*StreamConn) SetNodeID

func (c *StreamConn) SetNodeID(node fatchoy.NodeID)

func (*StreamConn) SetRemoteAddr

func (c *StreamConn) SetRemoteAddr(addr string)

func (*StreamConn) SetUserData

func (c *StreamConn) SetUserData(ud interface{})

func (*StreamConn) Stats

func (c *StreamConn) Stats() *stats.Stats

func (*StreamConn) UserData

func (c *StreamConn) UserData() interface{}

type TcpConn

type TcpConn struct {
	StreamConn
	// contains filtered or unexported fields
}

TCP connection

func NewTcpConn

func NewTcpConn(parentCtx context.Context, node fatchoy.NodeID, conn net.Conn, errChan chan error,
	incoming chan<- fatchoy.IPacket, outsize int, stats *stats.Stats) *TcpConn

func (*TcpConn) Close

func (t *TcpConn) Close() error

func (*TcpConn) ForceClose

func (t *TcpConn) ForceClose(err error)

func (*TcpConn) Go

func (t *TcpConn) Go(flag fatchoy.EndpointFlag)

func (*TcpConn) OutboundQueue

func (t *TcpConn) OutboundQueue() chan fatchoy.IPacket

func (*TcpConn) RawConn

func (t *TcpConn) RawConn() net.Conn

func (*TcpConn) SendPacket

func (t *TcpConn) SendPacket(pkt fatchoy.IPacket) error

type TcpServer

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

func NewTcpServer

func NewTcpServer(parentCtx context.Context, inbound chan fatchoy.IPacket, outsize int) *TcpServer

func (*TcpServer) BacklogChan

func (s *TcpServer) BacklogChan() chan fatchoy.Endpoint

func (*TcpServer) Close

func (s *TcpServer) Close()

func (*TcpServer) ErrorChan

func (s *TcpServer) ErrorChan() chan error

func (*TcpServer) Listen

func (s *TcpServer) Listen(addr string) error

func (*TcpServer) Shutdown

func (s *TcpServer) Shutdown()

type WsConn

type WsConn struct {
	StreamConn
	// contains filtered or unexported fields
}

Websocket connection

func NewWsConn

func NewWsConn(parentCtx context.Context, node fatchoy.NodeID, conn *websocket.Conn, errChan chan error,
	incoming chan<- fatchoy.IPacket, outsize int, stat *stats.Stats) *WsConn

func (*WsConn) Close

func (c *WsConn) Close() error

func (*WsConn) ForceClose

func (c *WsConn) ForceClose(err error)

func (*WsConn) Go

func (c *WsConn) Go(flag fatchoy.EndpointFlag)

func (*WsConn) RawConn

func (c *WsConn) RawConn() net.Conn

func (*WsConn) ReadPacket

func (c *WsConn) ReadPacket(pkt fatchoy.IPacket) error

Exported API

func (*WsConn) SendPacket

func (c *WsConn) SendPacket(pkt fatchoy.IPacket) error

type WsServer

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

Websocket server

func NewWebsocketServer

func NewWebsocketServer(parentCtx context.Context, addr, path string, inbound chan fatchoy.IPacket, outsize int) *WsServer

func (*WsServer) BacklogChan

func (s *WsServer) BacklogChan() chan *WsConn

func (*WsServer) ErrChan

func (s *WsServer) ErrChan() chan error

func (*WsServer) Go

func (s *WsServer) Go()

func (*WsServer) Shutdown

func (s *WsServer) Shutdown()

Jump to

Keyboard shortcuts

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