handler

package
v0.1.32 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterEvent

func RegisterEvent[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEvent Call in many goroutines, just one sub will receive the event

func RegisterEventBroadcast

func RegisterEventBroadcast[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventBroadcast Call in many goroutines,and all subscribers will receive

func RegisterEventForce

func RegisterEventForce[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventForce f is force handle when Server is busy many goroutines it is only used for very important businesses, such as recharge-related interfaces, adding gold coins to players, etc. just one sub will receive the event

func RegisterEventForceBroadcast

func RegisterEventForceBroadcast[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventForceBroadcast f is force handle when Server is busy many goroutines it is only used for very important businesses, such as recharge-related interfaces, adding gold coins to players, etc. all subscribers will receive

func RegisterEventForceSingle

func RegisterEventForceSingle[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventForceSingle f is force handle when Server is busy on eventloop just one sub will receive the event

func RegisterEventForceSingleBroadcast

func RegisterEventForceSingleBroadcast[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventForceSingleBroadcast f is force handle when Server is busy on eventloop all subscribers will receive

func RegisterEventSingle

func RegisterEventSingle[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventSingle Call in eventloop, just one sub will receive the event

func RegisterEventSingleBroadcast

func RegisterEventSingleBroadcast[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], TraceData any, T1 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterEventSingleBroadcast Call in eventloop ,and all subscribers will receive

func RegisterRPC

func RegisterRPC[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) (RESP, *berror.ErrMsg), middlewares ...Middleware[TraceData, TP],
)

RegisterRPC RESP is out parameter and Call in many goroutines,just one sub will receive the event

func RegisterRPCForce

func RegisterRPCForce[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) (RESP, *berror.ErrMsg), middlewares ...Middleware[TraceData, TP],
)

RegisterRPCForce f is force handle when Server is busy many goroutines it is only used for very important businesses, such as recharge-related interfaces, adding gold coins to players, etc. just one sub will receive the event

func RegisterRPCForceSingle

func RegisterRPCForceSingle[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) (RESP, *berror.ErrMsg), middlewares ...Middleware[TraceData, TP],
)

RegisterRPCForceSingle f is force handle when Server is busy on eventloop,just one sub will receive the event

func RegisterRPCResp

func RegisterRPCResp[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ, RESP) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterRPCResp RESP is in parameter and Call in many goroutines,just one sub will receive the event

func RegisterRPCRespForce

func RegisterRPCRespForce[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ, RESP) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterRPCRespForce f is force handle when Server is busy many goroutines It is only used for very important businesses, such as recharge-related interfaces, adding gold coins to players, etc. just one sub will receive the event

func RegisterRPCRespForceSingle

func RegisterRPCRespForceSingle[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ, RESP) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterRPCRespForceSingle f is force handle when Server is busy on eventloop,just one sub will receive the event

func RegisterRPCRespSingle

func RegisterRPCRespSingle[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ, RESP) *berror.ErrMsg, middlewares ...Middleware[TraceData, TP],
)

RegisterRPCRespSingle RESP is in parameter and Call in eventloop,just one sub will receive the event

func RegisterRPCSingle

func RegisterRPCSingle[TP ctx.TracePtr[TraceData], REQ define.ProtoMessagePtr[T1], RESP define.ProtoMessagePtr[T2], TraceData any, T1 any, T2 any](
	h *Handler[TraceData, TP], desc string, f func(*ctx.BaseCtx[TraceData, TP], REQ) (RESP, *berror.ErrMsg), middlewares ...Middleware[TraceData, TP],
)

RegisterRPCSingle RESP is out parameter and Call on eventloop,just one sub will receive the event

Types

type Elem

type Elem[TraceData any, TP ctx.TracePtr[TraceData]] struct {
	// contains filtered or unexported fields
}

func (*Elem[TraceData, TP]) Call

func (this_ *Elem[TraceData, TP]) Call(c *ctx.BaseCtx[TraceData, TP]) *berror.ErrMsg

func (*Elem[TraceData, TP]) IsForce

func (this_ *Elem[TraceData, TP]) IsForce() bool

func (*Elem[TraceData, TP]) IsRPC

func (this_ *Elem[TraceData, TP]) IsRPC() bool

func (*Elem[TraceData, TP]) IsRPCResp added in v0.0.3

func (this_ *Elem[TraceData, TP]) IsRPCResp() bool

func (*Elem[TraceData, TP]) IsSingle

func (this_ *Elem[TraceData, TP]) IsSingle() bool

func (*Elem[TraceData, TP]) MsgName

func (this_ *Elem[TraceData, TP]) MsgName() string

func (*Elem[TraceData, TP]) ReqPool

func (this_ *Elem[TraceData, TP]) ReqPool() *sync.Pool

func (*Elem[TraceData, TP]) RespPool

func (this_ *Elem[TraceData, TP]) RespPool() *sync.Pool

func (*Elem[TraceData, TP]) String

func (this_ *Elem[TraceData, TP]) String() string

type HandleFunc

type HandleFunc[TraceData any, TP ctx.TracePtr[TraceData]] func(*ctx.BaseCtx[TraceData, TP]) *berror.ErrMsg

func LoggerAndRecover added in v0.0.8

func LoggerAndRecover[TraceData any, TP ctx.TracePtr[TraceData]](next HandleFunc[TraceData, TP]) HandleFunc[TraceData, TP]

func Recover added in v0.0.8

func Recover[TraceData any, TP ctx.TracePtr[TraceData]](next HandleFunc[TraceData, TP]) HandleFunc[TraceData, TP]

type Handler

type Handler[TraceData any, TP ctx.TracePtr[TraceData]] struct {
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler[TraceData any, TP ctx.TracePtr[TraceData]](middlewares ...Middleware[TraceData, TP]) *Handler[TraceData, TP]

NewHandler create Router Handler

func (*Handler[TraceData, TP]) GetBroadcastSubjInfo

func (h *Handler[TraceData, TP]) GetBroadcastSubjInfo() map[string]struct{}

GetBroadcastSubjInfo get all broadcast subj topic prefix

func (*Handler[TraceData, TP]) GetHandler

func (h *Handler[TraceData, TP]) GetHandler(msgName string) (*Elem[TraceData, TP], bool)

GetHandler get Elem by msgName or nil

func (*Handler[TraceData, TP]) GetQueueSubjInfo

func (h *Handler[TraceData, TP]) GetQueueSubjInfo() map[string]struct{}

GetQueueSubjInfo get all queue subj topic prefix

func (*Handler[TraceData, TP]) Group

func (h *Handler[TraceData, TP]) Group(middlewares ...Middleware[TraceData, TP]) *Handler[TraceData, TP]

Group create a new Handler with same base middlewares

func (*Handler[TraceData, TP]) Logger

func (h *Handler[TraceData, TP]) Logger()

type Middleware added in v0.0.8

type Middleware[TraceData any, TP ctx.TracePtr[TraceData]] func(HandleFunc[TraceData, TP]) HandleFunc[TraceData, TP]

Jump to

Keyboard shortcuts

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