mux

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2022 License: MulanPSL-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrCallTimeout = errors.New("timeout for waiting call response")
View Source
var ErrUnmatchedResponse = errors.New("call response is not match request")

Functions

This section is empty.

Types

type CallCache

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

func (*CallCache) Delete

func (cc *CallCache) Delete(seq uint64)

func (*CallCache) Find

func (cc *CallCache) Find(seq uint64) *CallCacheElem

func (*CallCache) Push

func (cc *CallCache) Push(pac *protocol.Packet) *CallCacheElem

type CallCacheElem

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

type MuxCallAsyncResponse

type MuxCallAsyncResponse func(c *client.Client, hRsp *protocol.Header, oRsp protocol.Message, errCode uint32, err error)

type MuxClient

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

路由收发模块. 提供响应模式和回应模式.

func NewMuxClient

func NewMuxClient(config *MuxClientConfig) *MuxClient

func (*MuxClient) Call

func (mux *MuxClient) Call(c *client.Client, msg protocol.Message) (hRsp *protocol.Header, rsp protocol.Message, ec uint32, err error)

远程调用模式的发送消息. 若error为nil, 则rsp一定有值, 但有可能是服务器返回的错误信息

func (*MuxClient) CallAsync

func (mux *MuxClient) CallAsync(c *client.Client, msg protocol.Message, cb MuxCallAsyncResponse)

func (*MuxClient) GetHandle

func (mux *MuxClient) GetHandle(protoID uint32) MuxResponseHandler

func (*MuxClient) Handle

func (mux *MuxClient) Handle(protoID uint32, h MuxResponseHandler)

func (*MuxClient) HandleHeartbeatRsp

func (mux *MuxClient) HandleHeartbeatRsp(c *client.Client, hRsp *protocol.Header, oRsp protocol.Message) error

客户但响应: 心跳. 无逻辑, 仅占位. 请用户自行定义并注册响应函数

func (*MuxClient) HandlingResponse

func (mux *MuxClient) HandlingResponse(c *client.Client)

blocking. 建议以goroutine启动

func (*MuxClient) LoadInnerHandler

func (mux *MuxClient) LoadInnerHandler()

func (*MuxClient) OnPacket

func (mux *MuxClient) OnPacket(rspPac *protocol.Packet)

响应一个消息包. 对于call模式的handler, 将自动发送

func (*MuxClient) SetCallTimeout

func (mux *MuxClient) SetCallTimeout(d time.Duration)

设置call模式的超时时间

func (*MuxClient) SetRespChecker

func (mux *MuxClient) SetRespChecker(rc *RespChecker)

建议在建立连接前设置

func (*MuxClient) SignIn

func (mux *MuxClient) SignIn(c *client.Client) error

type MuxClientConfig

type MuxClientConfig struct {
	HeartbeatIntervalMS int
}

func DefaultMuxClientConfig

func DefaultMuxClientConfig() *MuxClientConfig

type MuxResponseHandler

type MuxResponseHandler func(c *client.Client, hRsp *protocol.Header, oRsp protocol.Message) error

type MuxServer

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

路由收发模块. 提供响应模式和回应模式.

func NewMuxServer

func NewMuxServer() *MuxServer

func (*MuxServer) AsCall

func (mux *MuxServer) AsCall(reqP uint32)

func (*MuxServer) GetHandle

func (mux *MuxServer) GetHandle(protoID uint32) MuxServerHandler

func (*MuxServer) Handle

func (mux *MuxServer) Handle(protoID uint32, h MuxServerHandler)

func (*MuxServer) HandleEchoReq

func (mux *MuxServer) HandleEchoReq(r *server.Receiver, hReq *protocol.Header, oReq protocol.Message) (protocol.Message, error)

服务端响应: 回声

func (*MuxServer) HandleHeartbeatReq

func (mux *MuxServer) HandleHeartbeatReq(r *server.Receiver, hReq *protocol.Header, oReq protocol.Message) (protocol.Message, error)

服务端响应: 心跳

func (*MuxServer) HandlingRecvChan

func (mux *MuxServer) HandlingRecvChan(index int, ctx context.Context, rc <-chan *protocol.Packet)

blocking. 建议以goroutine启动

func (*MuxServer) HandlingResponse

func (mux *MuxServer) HandlingResponse(r *server.Receiver)

blocking. 建议以goroutine启动

func (*MuxServer) LoadInnerHandler

func (mux *MuxServer) LoadInnerHandler(si *server.Server)

func (*MuxServer) OnPacket

func (mux *MuxServer) OnPacket(reqPac *protocol.Packet)

响应一个消息包. 对于call模式的handler, 将自动发送

func (*MuxServer) SetHandleSignInReq

func (mux *MuxServer) SetHandleSignInReq(s *server.Server)

服务端响应: 连接注册

type MuxServerConfig

type MuxServerConfig struct {
}

type MuxServerHandler

type MuxServerHandler func(r *server.Receiver, hReq *protocol.Header, oReq protocol.Message) (protocol.Message, error)

type RespChecker

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

func NewRespChecker

func NewRespChecker() *RespChecker

func (*RespChecker) CheckRespID

func (rc *RespChecker) CheckRespID(req, rsp uint32) bool

func (*RespChecker) SetRespID

func (rc *RespChecker) SetRespID(m map[uint32]uint32)

Jump to

Keyboard shortcuts

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