rpc

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2023 License: Apache-2.0 Imports: 13 Imported by: 3

Documentation

Index

Constants

View Source
const CALL_TIMEOUT = 10 * time.Second

Variables

View Source
var ErrNoKnow = errors.New("rpc: unknow")
View Source
var ErrTimeOut = errors.New("rpc: timeout")

Functions

func MakeRequestData

func MakeRequestData(msg proto.Message, seqID int32, senderID int32) []byte

func MakeResponseData

func MakeResponseData(msg proto.Message, seqID int32, senderID int32) []byte

func MakeServer2ServerData

func MakeServer2ServerData(msg proto.Message, senderID int32) []byte

func MakeServer2SessionData

func MakeServer2SessionData(msg proto.Message, sesID int32, senderID int32) []byte

func MakeSession2ServerData

func MakeSession2ServerData(msg proto.Message, sesID int32, senderID int32) []byte

Types

type Call

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

type Client

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

func (*Client) Answer

func (p *Client) Answer(serverTopic string, seqid int32, msg proto.Message)

func (*Client) Call

func (p *Client) Call(serverTopic string, req proto.Message, resp proto.Message) error

阻塞式

func (*Client) Close

func (p *Client) Close() (err error)

func (*Client) ReadLoop

func (p *Client) ReadLoop() error

func (*Client) RegisterSend2Session

func (p *Client) RegisterSend2Session(send2Session func(sesID int32, msgID uint32, data []byte))

func (*Client) Request

func (p *Client) Request(serverTopic string, msg proto.Message, cb interface{}) error

不需要注册Response的Request请求 onRecv func(*msg.XXX,error)

func (*Client) RouteGate

func (p *Client) RouteGate(gateTopic string, sesID int32, msg proto.Message)

发送给gate,然后gate会发出去

func (*Client) RouteSession2Server

func (p *Client) RouteSession2Server(topic string, sesID int32, msg proto.Message)

func (*Client) Run

func (p *Client) Run()

func (*Client) SendMsg

func (p *Client) SendMsg(serverTopic string, msg proto.Message)

仅发送

type GateSessionID

type GateSessionID struct {
	GateID int32
	SesID  int32
}

type Processor

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

func NewProcessor

func NewProcessor() *Processor

func (*Processor) GetCallWithDel

func (p *Processor) GetCallWithDel(seqID int32) (*Call, bool)

func (*Processor) HandleMsg

func (p *Processor) HandleMsg(server Server, msgID uint32, data []byte) error

func (*Processor) HandleRequest

func (p *Processor) HandleRequest(server RequestServer, msgID uint32, data []byte) error

func (*Processor) HandleResponse

func (p *Processor) HandleResponse(seqID int32, data []byte) error

func (*Processor) HandleSessionMsg

func (p *Processor) HandleSessionMsg(session Session, msgID uint32, data []byte) error

func (*Processor) NewSeqID

func (p *Processor) NewSeqID() int32

func (*Processor) RegisterCall

func (p *Processor) RegisterCall(resp proto.Message, onRecv func(error)) *Call

func (*Processor) RegisterRequestMsgHandler

func (p *Processor) RegisterRequestMsgHandler(msg proto.Message, f RequestHandler)

func (*Processor) RegisterServerMsgHandler

func (p *Processor) RegisterServerMsgHandler(msg proto.Message, f ServerMsgHandler)

func (*Processor) RegisterSessionMsgHandler

func (p *Processor) RegisterSessionMsgHandler(msg proto.Message, f SessionMsgHandler)

type RPC

type RPC struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewRPC

func NewRPC(serverID int32, worker service.Worker, natsUrl string) (*RPC, error)

func (*RPC) Close

func (p *RPC) Close()

func (*RPC) GetServerById

func (p *RPC) GetServerById(serverID int32) Server

func (*RPC) GetServerByType

func (p *RPC) GetServerByType(serverType ServerType) Server

TODO add

func (*RPC) RegisterRequestMsgHandler

func (p *RPC) RegisterRequestMsgHandler(cb interface{})

func (*RPC) RegisterSend2Session

func (p *RPC) RegisterSend2Session(send2Session func(sesID int32, msgID uint32, data []byte))

func (*RPC) RegisterServerMsgHandler

func (p *RPC) RegisterServerMsgHandler(cb interface{})

func (*RPC) RegisterSessionMsgHandler

func (p *RPC) RegisterSessionMsgHandler(cb interface{})

func (*RPC) Run

func (p *RPC) Run()

func (*RPC) Session

func (p *RPC) Session(gateID, sesID int32) Session

type RequestHandler

type RequestHandler func(RequestServer, proto.Message)

type RequestInfo

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

type RequestServer

type RequestServer interface {
	Answer(proto.Message)
	Server
}

func NewRequestServer

func NewRequestServer(client *Client, serverid int32, seqid int32) RequestServer

type Server

type Server interface {
	Notify(proto.Message)
	Call(proto.Message, proto.Message) error
	RouteSession2Server(sesID int32, msg proto.Message)

	Request(proto.Message, interface{}) error

	ID() int32
}

func NewServer

func NewServer(client *Client, serverid int32) Server

type ServerMsgHandler

type ServerMsgHandler func(Server, proto.Message)

type ServerMsgInfo

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

type ServerType

type ServerType int
const (
	Gate ServerType
	Center
	Game
	Users
)

type Session

type Session interface {
	SendMsg(msg proto.Message)
	SendRawMsg(msgID uint16, data []byte)
	GateSessionID() GateSessionID
}

func NewSession

func NewSession(client *Client, gateID int32, sesID int32) Session

type SessionMsgHandler

type SessionMsgHandler func(Session, proto.Message)

type SessionMsgInfo

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

Directories

Path Synopsis
Package rpcmsg is a generated protocol buffer package.
Package rpcmsg is a generated protocol buffer package.

Jump to

Keyboard shortcuts

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