link

package
v2.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BroadcastArgs

type BroadcastArgs struct {
	Kind    session.Kind // 会话类型,session.Conn 或 session.User
	Message *Message     // 消息
}

type DeliverArgs

type DeliverArgs struct {
	NID     string      // 接收节点。存在接收节点时,消息会直接投递给接收节点;不存在接收节点时,系统定位用户所在节点,然后投递。
	CID     int64       // 连接ID
	UID     int64       // 用户ID
	Message interface{} // 消息
}

type DisconnectArgs

type DisconnectArgs struct {
	GID     string       // 网关ID,会话类型为用户时可忽略此参数
	Kind    session.Kind // 会话类型,session.Conn 或 session.User
	Target  int64        // 会话目标,CID 或 UID
	IsForce bool         // 是否强制断开
}

type GetIPArgs

type GetIPArgs struct {
	GID    string       // 网关ID,会话类型为用户时可忽略此参数
	Kind   session.Kind // 会话类型,session.Conn 或 session.User
	Target int64        // 会话目标,CID 或 UID
}
type Link struct {
	// contains filtered or unexported fields
}
func NewLink(opts *Options) *Link

func (*Link) AskGate

func (l *Link) AskGate(ctx context.Context, uid int64, gid string) (string, bool, error)

AskGate 检测用户是否在给定的网关上

func (*Link) AskNode

func (l *Link) AskNode(ctx context.Context, uid int64, name, nid string) (string, bool, error)

AskNode 检测用户是否在给定的节点上

func (*Link) BindGate

func (l *Link) BindGate(ctx context.Context, uid int64, gid string, cid int64) error

BindGate 绑定网关

func (*Link) BindNode

func (l *Link) BindNode(ctx context.Context, uid int64, name, nid string) error

BindNode 绑定节点 单个用户可以绑定到多个节点服务器上,相同名称的节点服务器只能绑定一个,多次绑定会到相同名称的节点服务器会覆盖之前的绑定。 绑定操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。

func (*Link) Broadcast

func (l *Link) Broadcast(ctx context.Context, args *BroadcastArgs) (int64, error)

Broadcast 推送广播消息

func (*Link) Deliver

func (l *Link) Deliver(ctx context.Context, args *DeliverArgs) error

Deliver 投递消息给节点处理

func (*Link) Disconnect

func (l *Link) Disconnect(ctx context.Context, args *DisconnectArgs) error

Disconnect 断开连接

func (*Link) FetchServiceList

func (l *Link) FetchServiceList(ctx context.Context, kind cluster.Kind, states ...cluster.State) ([]*registry.ServiceInstance, error)

FetchServiceList 拉取服务列表

func (*Link) GetIP

func (l *Link) GetIP(ctx context.Context, args *GetIPArgs) (string, error)

GetIP 获取客户端IP

func (*Link) LocateGate

func (l *Link) LocateGate(ctx context.Context, uid int64) (string, error)

LocateGate 定位用户所在网关

func (*Link) LocateNode

func (l *Link) LocateNode(ctx context.Context, uid int64, name string) (string, error)

LocateNode 定位用户所在节点

func (*Link) Multicast

func (l *Link) Multicast(ctx context.Context, args *MulticastArgs) (int64, error)

Multicast 推送组播消息

func (*Link) Push

func (l *Link) Push(ctx context.Context, args *PushArgs) error

Push 推送消息

func (*Link) Stat

func (l *Link) Stat(ctx context.Context, kind session.Kind) (int64, error)

Stat 统计会话总数

func (*Link) Trigger

func (l *Link) Trigger(ctx context.Context, args *TriggerArgs) error

Trigger 触发事件

func (*Link) UnbindGate

func (l *Link) UnbindGate(ctx context.Context, uid int64) error

UnbindGate 解绑网关

func (*Link) UnbindNode

func (l *Link) UnbindNode(ctx context.Context, uid int64, name, nid string) error

UnbindNode 解绑节点 解绑时会对对应名称的节点服务器进行解绑,解绑时会对解绑节点ID进行校验,不匹配则解绑失败。 解绑操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。

func (*Link) WatchServiceInstance

func (l *Link) WatchServiceInstance(ctx context.Context, kinds ...cluster.Kind)

WatchServiceInstance 监听服务实例

func (*Link) WatchUserLocate

func (l *Link) WatchUserLocate(ctx context.Context, kinds ...cluster.Kind)

WatchUserLocate 监听用户定位

type Message

type Message struct {
	Seq   int32       // 序列号
	Route int32       // 路由ID
	Data  interface{} // 消息数据,接收json、proto、[]byte
}

type MulticastArgs

type MulticastArgs struct {
	GID     string       // 网关ID,会话类型为用户时可忽略此参数
	Kind    session.Kind // 会话类型,session.Conn 或 session.User
	Targets []int64      // 会话目标,CID 或 UID
	Message *Message     // 消息
}

type Options

type Options struct {
	GID             string                     // 网关ID
	NID             string                     // 节点ID
	Codec           encoding.Codec             // 编解码器
	Locator         locate.Locator             // 定位器
	Registry        registry.Registry          // 注册器
	Encryptor       crypto.Encryptor           // 加密器
	Transporter     transport.Transporter      // 传输器
	BalanceStrategy dispatcher.BalanceStrategy // 负载均衡策略
}

type PushArgs

type PushArgs struct {
	GID     string       // 网关ID,会话类型为用户时可忽略此参数
	Kind    session.Kind // 会话类型,session.Conn 或 session.User
	Target  int64        // 会话目标,CID 或 UID
	Message *Message     // 消息
}

type TriggerArgs

type TriggerArgs struct {
	Event cluster.Event // 事件
	CID   int64         // 连接ID
	UID   int64         // 用户ID
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL