tgf v1.0.9 Help

登录,离线钩子

钩子的使用方式十分简单,我们看一下下面这个例子

r := rpc.NewRPCServer(). WithGatewayWS("8443", "/tgf", rpc.NewUserHook(). AddOfflineHook(propservice.UserOffline.NewEmpty())). AddLoginHook(propservice.UserLogin.NewEmpty())). WithWhiteService("Login"). Run() <-r //Server Destroy Logic

我们在前面的基础教程中已经知道,上面这段代码是启动一个网关服务,并且将Login接口加入白名单中(无需登录,即可调用).

我们主要看这段代码 rpc.NewUserHook().AddOfflineHook(propservice.UserOffline.NewEmpty())). 这里首先使用rpc.NewUserHook()创建了一个IUserHook的结构体

之后使用链式调用的方式AddOfflineHook,AddLoginHook添加需要执行的协议.这里的propservice.UserOfflinepropservice.UserLogin都是通过工具生成的rpc接口,可以查看生成协议接口 .这里的协议参数,需要遵循 以下规范

UserOffline(ctx context.Context, args *rpc.DefaultArgs, reply *rpc.EmptyReply) (err error) UserLogin(ctx context.Context, args *rpc.DefaultArgs, reply *rpc.EmptyReply) (err error)

最后我们只需要调用对应的NewEmpty()生成一个空的结构体即可.其他就可以交给框架了.

Last modified: 02 March 2024