Documentation ¶
Index ¶
- type AppContext
- type Component
- type EventFunc
- type FrontendId
- type HandlerFn
- type IAppContext
- type IApplication
- type IComponent
- type IConnector
- type IDiscovery
- type IEvent
- type IHandler
- type IMember
- type INetConn
- type INetwork
- type INode
- type IPacket
- type IPacketCodec
- type ISerializer
- type MemberListener
- type OnConnectListener
- type RPCClient
- type RPCServer
- type SID
- type UID
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AppContext ¶
type AppContext struct {
// contains filtered or unexported fields
}
AppContext 继承自IApplication实现默认的方法
func (*AppContext) App ¶
func (b *AppContext) App() IApplication
func (*AppContext) Set ¶
func (b *AppContext) Set(app IApplication)
type Component ¶
type Component struct {
AppContext
}
Component base component
func (*Component) OnAfterInit ¶
func (*Component) OnAfterInit()
func (*Component) OnBeforeStop ¶
func (*Component) OnBeforeStop()
type FrontendId ¶
type FrontendId = string // 前端节点id
type HandlerFn ¶
type HandlerFn struct { Type reflect.Type Value reflect.Value InArgs []reflect.Type OutArgs []reflect.Type }
HandlerFn 函数反射信息
type IAppContext ¶
type IAppContext interface { Set(app IApplication) App() IApplication }
IAppContext App上下文
type IApplication ¶
type IApplication interface { INode ISerializer IPacketCodec Running() bool // 是否运行中 IsFrontend() bool // 是否为前端节点 Find(name string) IComponent // 根据name获取组件对象 Remove(name string) IComponent // 根据name移除组件对象 All() []IComponent // 获取所有组件列表 OnShutdown(fn ...func()) // 关闭前执行的函数 Startup(components ...IComponent) // 启动应用实例 Shutdown() // 关闭应用实例 }
type IComponent ¶
type IComponent interface { IAppContext Name() string Init() OnAfterInit() OnBeforeStop() OnStop() }
type IConnector ¶
type IConnector interface { OnStart() OnStop() OnConnect(listener ...OnConnectListener) // 启动前设置连接器监听函数 }
IConnector 网络连接器接口
type IDiscovery ¶ added in v1.1.5
type IDiscovery interface { Name() string // 发现服务名称 Init(app IApplication, config jsoniter.Any, params ...interface{}) // 初始化函数 List() []IMember // 获取成员列表 ListByType(nodeType string) []IMember // 根据节点类型获取列表 GetType(nodeId string) (nodeType string, err error) // 根据节点id获取类型 GetMember(nodeId string) (member IMember, found bool) // 获取成员 AddMember(member IMember) // 添加成员 RemoveMember(nodeId string) // 移除成员 OnAddMember(listener MemberListener) // 添加成员监听函数 OnRemoveMember(listener MemberListener) // 移除成员监听函数 OnStop() // 停止当前发现服务 }
IDiscovery 节点发现接口
type IHandler ¶
type IHandler interface { IAppContext // 应用实例上线文 Name() string // handler名称(用于消息路由) SetName(name string) // 设置handler名称 OnPreInit() // 预初始化方法(对象实例化前) OnInit() // 初始方法(PreInit之后) OnAfterInit() // 最后的初始化方法(Init之后) OnStop() // 停止handler运行 Events() map[string][]EventFunc // 已注册的事件列表 Event(name string) ([]EventFunc, bool) // 根据事件名获取事件列表 LocalHandlers() map[string]*HandlerFn // 已注册的本地handler列表(网络消息的逻辑处理函数) LocalHandler(funcName string) (*HandlerFn, bool) // 根据handler名称获取本地handler RemoteHandlers() map[string]*HandlerFn // 已注册的远程handler列表(内部rpc调用的逻辑处理函数) RemoteHandler(funcName string) (*HandlerFn, bool) // 根据handler名称获取远程handler }
IHandler 消息处理句柄接口,用于包装消息处理逻辑
type INetwork ¶
type INetwork interface { Push(route string, val interface{}) error // 推送消息对客户端 Response(mid uint, val interface{}, isError ...bool) error // 回复消息到客户端 Close() // 关闭接口 Kick(reason interface{}) error // 踢下线 RPC(route string, val interface{}) *cherryProto.Response // 调用rpc SendRaw(bytes []byte) error // write raw data to client RemoteAddr() net.Addr // 连接者的地址信息 }
INetwork 网络处理接口
type INode ¶
type INode interface { NodeId() string // 节点id(全局唯一) NodeType() string // 节点类型 Address() string // 对外网络监听地址 RpcAddress() string // rpc监听地址 Settings() jsoniter.Any // 节点配置参数 Enabled() bool // 是否启用 }
INode 节点信息
type IPacketCodec ¶
type ISerializer ¶
type ISerializer interface { Marshal(interface{}) ([]byte, error) // 编码 Unmarshal([]byte, interface{}) error // 解码 Name() string // 序列化类型的名称 }
ISerializer 消息序列化
type MemberListener ¶ added in v1.1.5
type MemberListener func(member IMember) // MemberListener 成员增、删监听函数
type RPCClient ¶ added in v1.1.17
type RPCClient interface { Init(app IApplication) OnStop() SendPush(fid FrontendId, message *cherryProto.PushMessage) error SendKick(fid FrontendId, message *cherryProto.KickMessage) error CallLocal(nodeId string, message *cherryProto.LocalMessage) error CallRemote(nodeId string, message *cherryProto.RemoteMessage, timeout time.Duration) *cherryProto.Response CallAsyncRemote(nodeId string, message *cherryProto.RemoteMessage) }
type RPCServer ¶ added in v1.1.17
type RPCServer interface { Init(app IApplication) OnStop() }
Click to show internal directories.
Click to hide internal directories.