chanconn

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package chanconn micserver 中的管道连接,底层默认将其应用于在同一个 App 下的模块间的连接, 可以减少消息编解码CPU占用,提高同一APP下的Module交换消息的效率。

Index

Constants

View Source
const (
	// 未连接
	TCPConnStateNone = 0
	// 已连接
	TCPConnStateLinked = 1
	// 标记不可发送
	TCPConnStateHold = 2
	// 已关闭
	TCPConnStateClosed = 3
)

ChanConn 的连接状态枚举

View Source
const (
	MaxMsgPackSum = 200
)

消息合批时,合并的最大消息数量

Variables

View Source
var (
	ErrSendNilData = errors.New("send nil data")
	ErrCloseed     = errors.New("conn has been closed")
	ErrBufferFull  = errors.New("buffer full")
)

chan 连接的错误类型

Functions

This section is empty.

Types

type ChanConn

type ChanConn struct {
	*log.Logger
	// contains filtered or unexported fields
}

ChanConn chan 连接

func (*ChanConn) GetMsgCodec

func (cc *ChanConn) GetMsgCodec() msg.IMsgCodec

GetMsgCodec 该方法将会返回默认消息编解码器。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。

func (*ChanConn) GetRecvMessageChannel

func (cc *ChanConn) GetRecvMessageChannel() chan *msg.MessageBinary

GetRecvMessageChannel 获取消息接收 chan

func (*ChanConn) HookProtocal

func (cc *ChanConn) HookProtocal(p baseio.Protocal)

HookProtocal chan 中使用的是默认网络协议(chan通信)。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。

func (*ChanConn) Init

func (cc *ChanConn) Init(sendChan chan *msg.MessageBinary,
	recvChan chan *msg.MessageBinary)

Init 初始化一个ChanConn对象

conn: net.Conn对象
sendChanSize: 	发送等待队列中的消息缓冲区大小
sendBufferSize: 发送拼包发送缓冲区大小
recvChanSize: 	接收等待队列中的消息缓冲区大小
recvBufferSize: 接收拼包发送缓冲区大小

返回:接收到的 messagebinary 的对象 chan

func (*ChanConn) IsAlive

func (cc *ChanConn) IsAlive() bool

IsAlive 连接是否存活

func (*ChanConn) Read

func (cc *ChanConn) Read(toData []byte) (int, error)

chan 中使用的是默认网络协议(chan通信),该消息返回空。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, Read 为了让 chan 连接实现 IConnect 接口而存在该方法。

func (*ChanConn) RemoteAddr

func (cc *ChanConn) RemoteAddr() string

RemoteAddr 获取该连接的远程连接地址

func (*ChanConn) SendBytes

func (cc *ChanConn) SendBytes(
	cmdid uint16, protodata []byte) error

SendBytes 发送消息 ID 及 Bytes 构成的消息

func (*ChanConn) SendMessageBinary

func (cc *ChanConn) SendMessageBinary(
	msgbinary *msg.MessageBinary) error

SendMessageBinary 发送 MsgBinary 消息

func (*ChanConn) SetBanAutoResize

func (cc *ChanConn) SetBanAutoResize(value bool)

SetBanAutoResize 在 chan 连接中,无法设置禁止缓冲区自动扩容。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。

func (*ChanConn) SetLogger

func (cc *ChanConn) SetLogger(l *log.Logger)

SetLogger 设置连接的 Logger

func (*ChanConn) SetMsgCodec

func (cc *ChanConn) SetMsgCodec(codec msg.IMsgCodec)

SetMsgCodec chan 中使用的是默认消息编解码器。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。

func (*ChanConn) Shutdown

func (cc *ChanConn) Shutdown() error

Shutdown 尝试关闭此连接

func (*ChanConn) StartRecv

func (cc *ChanConn) StartRecv()

StartRecv 开始接收消息

func (*ChanConn) Write

func (cc *ChanConn) Write(data []byte) (int, error)

chan 中使用的是默认网络协议(chan通信),该消息返回空。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, Write 为了让 chan 连接实现 IConnect 接口而存在该方法。

Jump to

Keyboard shortcuts

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