登录,离线钩子
钩子的使用方式十分简单,我们看一下下面这个例子
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.UserOffline和 propservice.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