Documentation ¶
Index ¶
- Variables
- type CallCache
- type CallCacheElem
- type MuxCallAsyncResponse
- type MuxClient
- func (mux *MuxClient) Call(c *client.Client, msg protocol.Message) (hRsp *protocol.Header, rsp protocol.Message, ec uint32, err error)
- func (mux *MuxClient) CallAsync(c *client.Client, msg protocol.Message, cb MuxCallAsyncResponse)
- func (mux *MuxClient) GetHandle(protoID uint32) MuxResponseHandler
- func (mux *MuxClient) Handle(protoID uint32, h MuxResponseHandler)
- func (mux *MuxClient) HandleHeartbeatRsp(c *client.Client, hRsp *protocol.Header, oRsp protocol.Message) error
- func (mux *MuxClient) HandlingResponse(c *client.Client)
- func (mux *MuxClient) LoadInnerHandler()
- func (mux *MuxClient) OnPacket(rspPac *protocol.Packet)
- func (mux *MuxClient) SetCallTimeout(d time.Duration)
- func (mux *MuxClient) SetRespChecker(rc *RespChecker)
- func (mux *MuxClient) SignIn(c *client.Client) error
- type MuxClientConfig
- type MuxResponseHandler
- type MuxServer
- func (mux *MuxServer) AsCall(reqP uint32)
- func (mux *MuxServer) GetHandle(protoID uint32) MuxServerHandler
- func (mux *MuxServer) Handle(protoID uint32, h MuxServerHandler)
- func (mux *MuxServer) HandleEchoReq(r *server.Receiver, hReq *protocol.Header, oReq protocol.Message) (protocol.Message, error)
- func (mux *MuxServer) HandleHeartbeatReq(r *server.Receiver, hReq *protocol.Header, oReq protocol.Message) (protocol.Message, error)
- func (mux *MuxServer) HandlingRecvChan(index int, ctx context.Context, rc <-chan *protocol.Packet)
- func (mux *MuxServer) HandlingResponse(r *server.Receiver)
- func (mux *MuxServer) LoadInnerHandler(si *server.Server)
- func (mux *MuxServer) OnPacket(reqPac *protocol.Packet)
- func (mux *MuxServer) SetHandleSignInReq(s *server.Server)
- type MuxServerConfig
- type MuxServerHandler
- type RespChecker
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) Find ¶
func (cc *CallCache) Find(seq uint64) *CallCacheElem
type CallCacheElem ¶
type CallCacheElem struct {
// contains filtered or unexported fields
}
type MuxCallAsyncResponse ¶
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) 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 ¶
blocking. 建议以goroutine启动
func (*MuxClient) LoadInnerHandler ¶
func (mux *MuxClient) LoadInnerHandler()
func (*MuxClient) SetCallTimeout ¶
设置call模式的超时时间
type MuxClientConfig ¶
type MuxClientConfig struct {
HeartbeatIntervalMS int
}
func DefaultMuxClientConfig ¶
func DefaultMuxClientConfig() *MuxClientConfig
type MuxResponseHandler ¶
type MuxServer ¶
type MuxServer struct {
// contains filtered or unexported fields
}
路由收发模块. 提供响应模式和回应模式.
func NewMuxServer ¶
func NewMuxServer() *MuxServer
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 ¶
blocking. 建议以goroutine启动
func (*MuxServer) HandlingResponse ¶
blocking. 建议以goroutine启动
func (*MuxServer) LoadInnerHandler ¶
func (*MuxServer) SetHandleSignInReq ¶
服务端响应: 连接注册
type MuxServerConfig ¶
type MuxServerConfig struct { }
type MuxServerHandler ¶
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)
Click to show internal directories.
Click to hide internal directories.