tgf v1.0.9 Help

Context教程

Context相关内容

概述

在框架中,我们所有的请求和操作都会依赖于context,通过context我们可以获取到当前请求的用户,还有他的前置请求节点,还有相关的缓存信息. 我们会根据这些信息,进行用户请求的路由,权限等操作.

一般情况下,我们是不需要自己去操作Context的,因为框架已经帮我们管理了用户的常规操作Context.但是我们在某些场景下,只记录了用户的userId,这时候可以 通过框架提供的Context相关操作进行实例化,而后就可以正常调用相关的rpc请求了.

函数详解

context的相关操作函数,都在rpc包下.我们可以通过rpc.*的方式调用这些函数

NewCacheUserContext

实例化一个Context ,会先从redis等缓存中先获取用户的context信息,如果存在那么就会返回用户的Context缓存数据.否则会调用NewUserRPCContext

这个函数会从缓存中初始化用户所有Context信息

这个实例化函数一般会应用在需要精准命中节点的场景,或者有多业务节点请求的场景.避免重复获取节点信息

NewRPCContext

常规的rpc Context实例, 不包含用户信息.一般用于不涉及用户相关内容的服务器和服务器之间的逻辑请求.

NewUserRPCContext

默认用户Context ,用于用户常规的请求.

NewBindRPCContext

多用户节点绑定实例,需要传入多个用户的UserId.

这个函数会将传入的用户,重新绑定到同一节点中.这个节点信息是通过默认的路由逻辑进行分配的.开发人员不需要关注最终的节点路径.

举个例子: 多个用户通过匹配服,分配到某个房间.这时候我们需要使用该函数,传入这些用户的userId创建一个Context ,使用这个Context调用rpc请求创建房间. 这时候,这几个用户会重新绑定相同的房间节点信息.那么,在后续与房间相关的api请求,都会路由到该房间节点中.

Last modified: 02 March 2024