Documentation ¶
Overview ¶
Package chanconn micserver 中的管道连接,底层默认将其应用于在同一个 App 下的模块间的连接, 可以减少消息编解码CPU占用,提高同一APP下的Module交换消息的效率。
Index ¶
- Constants
- Variables
- type ChanConn
- func (cc *ChanConn) GetMsgCodec() msg.IMsgCodec
- func (cc *ChanConn) GetRecvMessageChannel() chan *msg.MessageBinary
- func (cc *ChanConn) HookProtocal(p baseio.Protocal)
- func (cc *ChanConn) Init(sendChan chan *msg.MessageBinary, recvChan chan *msg.MessageBinary)
- func (cc *ChanConn) IsAlive() bool
- func (cc *ChanConn) Read(toData []byte) (int, error)
- func (cc *ChanConn) RemoteAddr() string
- func (cc *ChanConn) SendBytes(cmdid uint16, protodata []byte) error
- func (cc *ChanConn) SendMessageBinary(msgbinary *msg.MessageBinary) error
- func (cc *ChanConn) SetBanAutoResize(value bool)
- func (cc *ChanConn) SetLogger(l *log.Logger)
- func (cc *ChanConn) SetMsgCodec(codec msg.IMsgCodec)
- func (cc *ChanConn) Shutdown() error
- func (cc *ChanConn) StartRecv()
- func (cc *ChanConn) Write(data []byte) (int, error)
Constants ¶
const ( // 未连接 TCPConnStateNone = 0 // 已连接 TCPConnStateLinked = 1 // 标记不可发送 TCPConnStateHold = 2 // 已关闭 TCPConnStateClosed = 3 )
ChanConn 的连接状态枚举
const (
MaxMsgPackSum = 200
)
消息合批时,合并的最大消息数量
Variables ¶
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 ¶
ChanConn chan 连接
func (*ChanConn) GetMsgCodec ¶
GetMsgCodec 该方法将会返回默认消息编解码器。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。
func (*ChanConn) GetRecvMessageChannel ¶
func (cc *ChanConn) GetRecvMessageChannel() chan *msg.MessageBinary
GetRecvMessageChannel 获取消息接收 chan
func (*ChanConn) HookProtocal ¶
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) Read ¶
chan 中使用的是默认网络协议(chan通信),该消息返回空。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, Read 为了让 chan 连接实现 IConnect 接口而存在该方法。
func (*ChanConn) SendMessageBinary ¶
func (cc *ChanConn) SendMessageBinary( msgbinary *msg.MessageBinary) error
SendMessageBinary 发送 MsgBinary 消息
func (*ChanConn) SetBanAutoResize ¶
SetBanAutoResize 在 chan 连接中,无法设置禁止缓冲区自动扩容。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。
func (*ChanConn) SetMsgCodec ¶
SetMsgCodec chan 中使用的是默认消息编解码器。 在 chan 连接中,无法设置消息编解码器,因为其实根本不需要进行消息编解码, 为了让 chan 连接实现 IConnect 接口而存在该方法。