Documentation
¶
Index ¶
- type HookHandler
- type Mesh
- type Option
- func WithCodec(codec encoding.Codec) Option
- func WithContext(ctx context.Context) Option
- func WithEncryptor(encryptor crypto.Encryptor) Option
- func WithID(id string) Option
- func WithLinkerCallTimeout(callTimeout time.Duration) Option
- func WithLinkerCommandQueueSize(commandQueueSize int32) Option
- func WithLinkerCommandWriteTimeout(commandWriteTimeout time.Duration) Option
- func WithLinkerConnNum(connNum int) Option
- func WithLinkerDialRetryTimes(dialRetryTimes int) Option
- func WithLinkerDialTimeout(dialTimeout time.Duration) Option
- func WithLinkerFaultRecoveryTime(faultRecoveryTime time.Duration) Option
- func WithLocator(locator locate.Locator) Option
- func WithMetadata(metadata map[string]string) Option
- func WithName(name string) Option
- func WithRegistry(r registry.Registry) Option
- func WithTransporter(transporter transport.Transporter) Option
- func WithWeight(weight int) Option
- type Proxy
- func (p *Proxy) AddHookListener(hook cluster.Hook, handler HookHandler)
- func (p *Proxy) AddServiceProvider(name string, desc, provider any)
- func (p *Proxy) AskGate(ctx context.Context, gid string, uid int64) (string, bool, error)
- func (p *Proxy) AskNode(ctx context.Context, uid int64, name, nid string) (string, bool, error)
- func (p *Proxy) BindGate(ctx context.Context, gid string, cid, uid int64) error
- func (p *Proxy) BindNode(ctx context.Context, uid int64, name, nid string) error
- func (p *Proxy) Broadcast(ctx context.Context, args *cluster.BroadcastArgs) (int64, error)
- func (p *Proxy) Deliver(ctx context.Context, args *cluster.DeliverArgs) error
- func (p *Proxy) Disconnect(ctx context.Context, args *cluster.DisconnectArgs) error
- func (p *Proxy) FetchGateList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)
- func (p *Proxy) FetchNodeList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)
- func (p *Proxy) GetID() string
- func (p *Proxy) GetIP(ctx context.Context, args *cluster.GetIPArgs) (string, error)
- func (p *Proxy) GetName() string
- func (p *Proxy) GetState() cluster.State
- func (p *Proxy) HasGate(gid string) (bool, error)
- func (p *Proxy) HasNode(nid string) (bool, error)
- func (p *Proxy) IsOnline(ctx context.Context, args *cluster.IsOnlineArgs) (bool, error)
- func (p *Proxy) LocateGate(ctx context.Context, uid int64) (string, error)
- func (p *Proxy) LocateNode(ctx context.Context, uid int64, name string) (string, error)
- func (p *Proxy) LocateNodes(ctx context.Context, uid int64) (map[string]string, error)
- func (p *Proxy) Multicast(ctx context.Context, args *cluster.MulticastArgs) (int64, error)
- func (p *Proxy) NewMeshClient(target string) (transport.Client, error)
- func (p *Proxy) PackBuffer(message any) ([]byte, error)
- func (p *Proxy) PackMessage(message *cluster.Message) ([]byte, error)
- func (p *Proxy) Publish(ctx context.Context, args *cluster.PublishArgs) (int64, error)
- func (p *Proxy) Push(ctx context.Context, args *cluster.PushArgs) error
- func (p *Proxy) SetState(state cluster.State) error
- func (p *Proxy) Stat(ctx context.Context, kind session.Kind) (int64, error)
- func (p *Proxy) Subscribe(ctx context.Context, args *cluster.SubscribeArgs) error
- func (p *Proxy) UnbindGate(ctx context.Context, uid int64) error
- func (p *Proxy) UnbindNode(ctx context.Context, uid int64, name, nid string) error
- func (p *Proxy) Unsubscribe(ctx context.Context, args *cluster.UnsubscribeArgs) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Mesh ¶
Mesh 微服务服务器
type Option ¶
type Option func(o *options)
Option 微服务配置函数
func WithContext ¶
WithContext 设置启动上下文 @param ctx context.Context 启动上下文 @return @1 Option 微服务配置项
func WithEncryptor ¶
WithEncryptor 设置消息加密器 @param encryptor crypto.Encryptor 消息加密器 @return @1 Option 微服务配置项
func WithLinkerCallTimeout ¶ added in v2.6.0
WithLinkerCallTimeout 设置RPC调用超时时间 @param callTimeout time.Duration 内部RPC调用超时时间 @return @1 Option 微服务配置项
func WithLinkerCommandQueueSize ¶ added in v2.6.0
WithLinkerCommandQueueSize 设置消息队列大小 @param commandQueueSize int32 消息队列大小 @return @1 Option 微服务配置项
func WithLinkerCommandWriteTimeout ¶ added in v2.6.0
WithLinkerCommandWriteTimeout 设置写入超时时间 @param commandWriteTimeout time.Duration 消息写入超时时间 @return @1 Option 微服务配置项
func WithLinkerConnNum ¶ added in v2.6.0
WithLinkerConnNum 设置连接数 @param connNum int 内部RPC拨号连接数 @return @1 Option 微服务配置项
func WithLinkerDialRetryTimes ¶ added in v2.6.0
WithLinkerDialRetryTimes 设置内部RPC拨号重试次数 @param dialRetryTimes int 内部RPC拨号重试次数 @return @1 Option 微服务配置项
func WithLinkerDialTimeout ¶ added in v2.6.0
WithLinkerDialTimeout 设置内部RPC拨号超时时间 @param dialTimeout time.Duration 内部RPC拨号超时时间 @return @1 Option 微服务配置项
func WithLinkerFaultRecoveryTime ¶ added in v2.6.0
WithLinkerFaultRecoveryTime 设置内部RPC故障恢复时间 @param faultRecoveryTime time.Duration 内部RPC故障恢复时间 @return @1 Option 微服务配置项
func WithLocator ¶
WithLocator 设置定位器 @param locator locate.Locator 用户定位器 @return @1 Option 微服务配置项
func WithMetadata ¶ added in v2.3.0
WithMetadata 设置元数据 @param metadata map[string]string 元数据 @return @1 Option 微服务配置项
func WithRegistry ¶
WithRegistry 设置服务注册器 @param r registry.Registry 服务注册器 @return @1 Option 微服务配置项
func WithTransporter ¶
func WithTransporter(transporter transport.Transporter) Option
WithTransporter 设置消息传输器 @param transporter transport.Transporter 消息传输器 @return @1 Option 微服务配置项
func WithWeight ¶ added in v2.2.4
WithWeight 设置权重 @param weight int 服务器权重 @return @1 Option 微服务配置项
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
Proxy 代理 提供微服务服务器对外可见的完整功能API,包括网关/节点链接与消息推送等
func (*Proxy) AddHookListener ¶ added in v2.1.0
func (p *Proxy) AddHookListener(hook cluster.Hook, handler HookHandler)
AddHookListener 添加钩子监听器 @param hook cluster.Hook 钩子类型 @param handler HookHandler 钩子处理函数
func (*Proxy) AddServiceProvider ¶
AddServiceProvider 添加服务提供者 @param name string 服务名称 @param desc any 服务描述对象 @param provider any 服务提供者
func (*Proxy) AskGate ¶ added in v2.1.0
AskGate 检测用户是否在给定的网关上 @param ctx context.Context 上下文 @param gid string 网关ID @param uid int64 用户ID @return @1 string 用户实际所在的网关ID @return @2 bool 用户是否在给定的网关上 @return @3 error 微服务关闭时返回的错误
func (*Proxy) AskNode ¶ added in v2.1.0
AskNode 检测用户是否在给定的节点上 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @param nid string 节点ID @return @1 string 用户实际所在的节点ID @return @2 bool 用户是否在给定的节点上 @return @3 error 微服务关闭时返回的错误
func (*Proxy) BindGate ¶
BindGate 绑定网关 @param ctx context.Context 上下文 @param gid string 网关ID @param cid int64 连接ID @param uid int64 用户ID,绑定后用户与该连接关联 @return @1 error 微服务关闭或绑定失败时返回的错误
func (*Proxy) BindNode ¶
BindNode 绑定节点 单个用户可以绑定到多个节点服务器上,相同名称的节点服务器只能绑定一个,多次绑定会到相同名称的节点服务器会覆盖之前的绑定。 绑定操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @param nid string 节点ID @return @1 error 微服务关闭或绑定失败时返回的错误
func (*Proxy) Broadcast ¶
Broadcast 推送广播消息 要想获得推送成功的目标数,需将args.Ack设为true @param ctx context.Context 上下文 @param args *cluster.BroadcastArgs 广播参数 @return @1 int64 广播成功的目标数 @return @2 error 微服务关闭或推送失败时返回的错误
func (*Proxy) Deliver ¶ added in v2.1.0
Deliver 投递消息给节点处理 @param ctx context.Context 上下文 @param args *cluster.DeliverArgs 投递参数 @return @1 error 微服务关闭或投递失败时返回的错误
func (*Proxy) Disconnect ¶
Disconnect 断开连接 @param ctx context.Context 上下文 @param args *cluster.DisconnectArgs 断开参数 @return @1 error 微服务关闭或断开失败时返回的错误
func (*Proxy) FetchGateList ¶
func (p *Proxy) FetchGateList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)
FetchGateList 拉取网关列表 @param ctx context.Context 上下文 @param states ...cluster.State 状态过滤条件 @return @1 []*registry.ServiceInstance 网关服务实例列表 @return @2 error 微服务关闭时返回的错误
func (*Proxy) FetchNodeList ¶
func (p *Proxy) FetchNodeList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)
FetchNodeList 拉取节点列表 @param ctx context.Context 上下文 @param states ...cluster.State 状态过滤条件 @return @1 []*registry.ServiceInstance 节点服务实例列表 @return @2 error 微服务关闭时返回的错误
func (*Proxy) GetIP ¶
GetIP 获取客户端IP @param ctx context.Context 上下文 @param args *cluster.GetIPArgs 查询参数 @return @1 string 客户端IP @return @2 error 微服务关闭或查询失败时返回的错误
func (*Proxy) HasGate ¶ added in v2.5.0
HasGate 检测是否存在某个网关 @param gid string 网关ID @return @1 bool 网关是否存在 @return @2 error 微服务关闭时返回的错误
func (*Proxy) HasNode ¶ added in v2.5.0
HasNode 检测是否存在某个节点 @param nid string 节点ID @return @1 bool 节点是否存在 @return @2 error 微服务关闭时返回的错误
func (*Proxy) IsOnline ¶ added in v2.1.0
IsOnline 检测是否在线 @param ctx context.Context 上下文 @param args *cluster.IsOnlineArgs 查询参数 @return @1 bool 是否在线 @return @2 error 微服务关闭或查询失败时返回的错误
func (*Proxy) LocateGate ¶
LocateGate 定位用户所在网关 @param ctx context.Context 上下文 @param uid int64 用户ID @return @1 string 用户所在的网关ID @return @2 error 微服务关闭时返回的错误
func (*Proxy) LocateNode ¶
LocateNode 定位用户所在节点 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @return @1 string 用户所在的节点ID @return @2 error 微服务关闭时返回的错误
func (*Proxy) LocateNodes ¶ added in v2.5.0
LocateNodes 定位用户所在节点列表 @param ctx context.Context 上下文 @param uid int64 用户ID @return @1 map[string]string 用户绑定的节点名称到节点ID的映射 @return @2 error 微服务关闭时返回的错误
func (*Proxy) Multicast ¶
Multicast 推送组播消息 要想获得推送成功的目标数,需将args.Ack设为true @param ctx context.Context 上下文 @param args *cluster.MulticastArgs 组播参数 @return @1 int64 组播成功的目标数 @return @2 error 微服务关闭或推送失败时返回的错误
func (*Proxy) NewMeshClient ¶ added in v2.1.0
NewMeshClient 新建微服务客户端 target参数可分为三种模式: 服务直连模式: direct://127.0.0.1:8011 服务直连模式: direct://711baf8d-8a06-11ef-b7df-f4f19e1f0070 服务发现模式: discovery://service_name @param target string 微服务目标地址 @return @1 transport.Client 微服务客户端 @return @2 error 微服务关闭时返回的错误
func (*Proxy) PackBuffer ¶ added in v2.2.0
PackBuffer 打包Buffer @param message any 待打包的消息内容 @return @1 []byte 打包后的消息字节 @return @2 error 打包失败时返回的错误
func (*Proxy) PackMessage ¶ added in v2.2.0
PackMessage 打包消息 @param message *cluster.Message 待打包的消息 @return @1 []byte 打包后的消息字节 @return @2 error 打包失败时返回的错误
func (*Proxy) Publish ¶ added in v2.3.0
Publish 发布消息 要想获得推送成功的目标数,需将args.Ack设为true @param ctx context.Context 上下文 @param args *cluster.PublishArgs 发布参数 @return @1 int64 发布成功的目标数 @return @2 error 微服务关闭或发布失败时返回的错误
func (*Proxy) Push ¶
Push 推送消息 args.Ack设为true时可获得消息真实发送的情况 @param ctx context.Context 上下文 @param args *cluster.PushArgs 推送参数 @return @1 error 微服务关闭或推送失败时返回的错误
func (*Proxy) SetState ¶ added in v2.6.0
SetState 设置当前微服务状态 @param state cluster.State 目标状态 @return @1 error 状态设置失败时返回的错误
func (*Proxy) Stat ¶
Stat 统计会话总数 @param ctx context.Context 上下文 @param kind session.Kind 会话类型 @return @1 int64 会话总数 @return @2 error 微服务关闭时返回的错误
func (*Proxy) Subscribe ¶ added in v2.3.0
Subscribe 订阅频道 @param ctx context.Context 上下文 @param args *cluster.SubscribeArgs 订阅参数 @return @1 error 微服务关闭或订阅失败时返回的错误
func (*Proxy) UnbindGate ¶
UnbindGate 解绑网关 @param ctx context.Context 上下文 @param uid int64 用户ID @return @1 error 微服务关闭或解绑失败时返回的错误
func (*Proxy) UnbindNode ¶
UnbindNode 解绑节点 解绑时会对对应名称的节点服务器进行解绑,解绑时会对解绑节点ID进行校验,不匹配则解绑失败。 解绑操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @param nid string 节点ID @return @1 error 微服务关闭或解绑失败时返回的错误
func (*Proxy) Unsubscribe ¶ added in v2.3.0
Unsubscribe 取消订阅频道 @param ctx context.Context 上下文 @param args *cluster.UnsubscribeArgs 取消订阅参数 @return @1 error 微服务关闭或取消订阅失败时返回的错误