Documentation
¶
Index ¶
- type Context
- type EventHandler
- type HookHandler
- type Middleware
- type MiddlewareHandler
- type Node
- type Option
- func WithAddr(addr string) 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 WithLocator(locator locate.Locator) Option
- func WithName(name string) Option
- func WithRegistry(r registry.Registry) Option
- func WithTimeout(timeout time.Duration) Option
- func WithTransporter(transporter transport.Transporter) Option
- type Proxy
- func (p *Proxy) AddEventHandler(event cluster.Event, handler EventHandler)
- func (p *Proxy) AddHookListener(hook cluster.Hook, handler HookHandler)
- func (p *Proxy) AddInternalRouteHandler(route int32, stateful bool, handler RouteHandler, ...)
- func (p *Proxy) AddRouteHandler(route int32, stateful bool, handler RouteHandler, ...)
- 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, nameAndNID ...string) error
- func (p *Proxy) Broadcast(ctx context.Context, args *cluster.BroadcastArgs) 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) Invoke(fn func())
- 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) Multicast(ctx context.Context, args *cluster.MulticastArgs) error
- func (p *Proxy) NewMeshClient(target string) (transport.Client, error)
- func (p *Proxy) Push(ctx context.Context, args *cluster.PushArgs) error
- func (p *Proxy) RouteGroup(groups ...func(group *RouterGroup)) *RouterGroup
- func (p *Proxy) Router() *Router
- func (p *Proxy) SetDefaultRouteHandler(handler RouteHandler)
- func (p *Proxy) SetState(state cluster.State) error
- func (p *Proxy) Stat(ctx context.Context, kind session.Kind) (int64, error)
- func (p *Proxy) Trigger() *Trigger
- func (p *Proxy) UnbindGate(ctx context.Context, uid int64) error
- func (p *Proxy) UnbindNode(ctx context.Context, uid int64, nameAndNID ...string) error
- type RouteHandler
- type RouteOptions
- type Router
- func (r *Router) AddInternalRouteHandler(route int32, stateful bool, handler RouteHandler, ...)
- func (r *Router) AddRouteHandler(route int32, stateful bool, handler RouteHandler, ...)
- func (r *Router) CheckRouteStateful(route int32) (stateful bool, exist bool)
- func (r *Router) Group(groups ...func(group *RouterGroup)) *RouterGroup
- func (r *Router) HasDefaultRouteHandler() bool
- func (r *Router) SetDefaultRouteHandler(handler RouteHandler)
- type RouterGroup
- type SchedulingModel
- type Trigger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context interface {
// GID 获取网关ID
GID() string
// NID 获取节点ID
NID() string
// CID 获取连接ID
CID() int64
// UID 获取用户ID
UID() int64
// Seq 获取消息序列号
Seq() int32
// Route 获取消息路由号
Route() int32
// Event 获取事件类型
Event() cluster.Event
// Parse 解析消息
Parse(v interface{}) error
// Clone 克隆Context
Clone() Context
// Task 投递任务
Task(fn func(ctx Context))
// Context 获取上下文
Context() context.Context
// BindGate 绑定网关
BindGate(uid ...int64) error
// UnbindGate 解绑网关
UnbindGate(uid ...int64) error
// BindNode 绑定节点
BindNode(uid ...int64) error
// UnbindNode 解绑节点
UnbindNode(uid ...int64) error
// GetIP 获取客户端IP
GetIP() (string, error)
// Reply 回复消息
Reply(message *cluster.Message) error
// Response 响应消息
Response(message interface{}) error
// Disconnect 关闭来自网关的连接
Disconnect(isForce ...bool) error
}
type EventHandler ¶
type EventHandler func(ctx Context)
type HookHandler ¶ added in v2.1.0
type HookHandler func(proxy *Proxy)
type Middleware ¶
type Middleware struct {
// contains filtered or unexported fields
}
type MiddlewareHandler ¶
type MiddlewareHandler func(middleware *Middleware, ctx Context)
type Option ¶
type Option func(o *options)
func WithTransporter ¶
func WithTransporter(transporter transport.Transporter) Option
WithTransporter 设置消息传输器
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
func (*Proxy) AddEventHandler ¶ added in v2.1.0
func (p *Proxy) AddEventHandler(event cluster.Event, handler EventHandler)
AddEventHandler 添加事件处理器
func (*Proxy) AddHookListener ¶ added in v2.1.0
func (p *Proxy) AddHookListener(hook cluster.Hook, handler HookHandler)
AddHookListener 添加钩子监听器
func (*Proxy) AddInternalRouteHandler ¶ added in v2.1.0
func (p *Proxy) AddInternalRouteHandler(route int32, stateful bool, handler RouteHandler, middlewares ...MiddlewareHandler)
AddInternalRouteHandler 添加内部路由处理器(node节点间路由消息处理)
func (*Proxy) AddRouteHandler ¶ added in v2.1.0
func (p *Proxy) AddRouteHandler(route int32, stateful bool, handler RouteHandler, middlewares ...MiddlewareHandler)
AddRouteHandler 添加路由处理器
func (*Proxy) BindNode ¶
BindNode 绑定节点 单个用户可以绑定到多个节点服务器上,相同名称的节点服务器只能绑定一个,多次绑定会到相同名称的节点服务器会覆盖之前的绑定。 绑定操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。
func (*Proxy) Disconnect ¶
Disconnect 断开连接
func (*Proxy) FetchGateList ¶
func (p *Proxy) FetchGateList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)
FetchGateList 拉取网关列表
func (*Proxy) FetchNodeList ¶
func (p *Proxy) FetchNodeList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)
FetchNodeList 拉取节点列表
func (*Proxy) LocateGate ¶
LocateGate 定位用户所在网关
func (*Proxy) LocateNode ¶
LocateNode 定位用户所在节点
func (*Proxy) NewMeshClient ¶ added in v2.1.0
NewMeshClient 新建微服务客户端 target参数可分为两种模式: 服务直连模式: direct://127.0.0.1:8011 服务发现模式: discovery://service_name
func (*Proxy) RouteGroup ¶ added in v2.1.0
func (p *Proxy) RouteGroup(groups ...func(group *RouterGroup)) *RouterGroup
RouteGroup 路由组
func (*Proxy) SetDefaultRouteHandler ¶ added in v2.1.0
func (p *Proxy) SetDefaultRouteHandler(handler RouteHandler)
SetDefaultRouteHandler 设置默认路由处理器,所有未注册的路由均走默认路由处理器
func (*Proxy) UnbindGate ¶
UnbindGate 解绑网关
type RouteHandler ¶
type RouteHandler func(ctx Context)
type RouteOptions ¶ added in v2.1.0
type RouteOptions struct {
// 是否有状态路由,默认无状态
// 无状态路由消息会根据负载均衡策略分配到不同的节点服务器进行处理
// 有状态路由消息会在绑定节点服务器后,固定路由到绑定的节点服务器进行处理
Stateful bool
// 是否内部的路由,默认非内部
// 外部路由可在客户端、网关、节点间进行消息流转
// 内部路由仅限于在节点间进行消息流转
Internal bool
// 是否受限的路由,默认不受限
// 仅对无状态路由生效
// 受限的路由在节点状态变更为cluster.Hang或cluster.Shut时,不会路由到该节点;网关层会优先选取其他处于cluster.Work状态的节点;若无cluster.Work状态的节点则选取cluster.Busy节点
// 非受限路由不受节点状态影响
Restricted bool
// 路由中间件
Middlewares []MiddlewareHandler
}
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) AddInternalRouteHandler ¶ added in v2.1.0
func (r *Router) AddInternalRouteHandler(route int32, stateful bool, handler RouteHandler, middlewares ...MiddlewareHandler)
AddInternalRouteHandler 添加内部路由处理器(node节点间路由消息处理)
func (*Router) AddRouteHandler ¶
func (r *Router) AddRouteHandler(route int32, stateful bool, handler RouteHandler, middlewares ...MiddlewareHandler)
AddRouteHandler 添加路由处理器
func (*Router) CheckRouteStateful ¶
CheckRouteStateful 是否为有状态路由
func (*Router) Group ¶
func (r *Router) Group(groups ...func(group *RouterGroup)) *RouterGroup
Group 路由组
func (*Router) HasDefaultRouteHandler ¶
HasDefaultRouteHandler 是否存在默认路由处理器
func (*Router) SetDefaultRouteHandler ¶
func (r *Router) SetDefaultRouteHandler(handler RouteHandler)
SetDefaultRouteHandler 设置默认路由处理器,所有未注册的路由均走默认路由处理器
type RouterGroup ¶
type RouterGroup struct {
// contains filtered or unexported fields
}
func (*RouterGroup) AddInternalRouteHandler ¶ added in v2.1.0
func (g *RouterGroup) AddInternalRouteHandler(route int32, stateful bool, handler RouteHandler, middlewares ...MiddlewareHandler) *RouterGroup
AddInternalRouteHandler 添加内部路由处理器(node节点间路由消息处理)
func (*RouterGroup) AddRouteHandler ¶
func (g *RouterGroup) AddRouteHandler(route int32, stateful bool, handler RouteHandler, middlewares ...MiddlewareHandler) *RouterGroup
AddRouteHandler 添加路由处理器
func (*RouterGroup) Middleware ¶
func (g *RouterGroup) Middleware(middlewares ...MiddlewareHandler) *RouterGroup
Middleware 添加中间件
type Trigger ¶ added in v2.1.0
type Trigger struct {
// contains filtered or unexported fields
}
func (*Trigger) AddEventHandler ¶ added in v2.1.0
func (e *Trigger) AddEventHandler(event cluster.Event, handler EventHandler)
AddEventHandler 添加事件处理器