discovery

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2025 License: MIT Imports: 4 Imported by: 1

Documentation

Overview

Package discovery 提供了dep2p的服务广告和节点发现接口

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Advertiser

type Advertiser interface {
	// Advertise 广播一个服务
	// 参数:
	//   - ctx: 上下文对象,用于控制操作的生命周期
	//   - ns: 命名空间字符串,用于标识服务
	//   - opts: 可选的配置选项
	// 返回:
	//   - time.Duration: 广告的有效时长
	//   - error: 操作过程中的错误信息
	Advertise(ctx context.Context, ns string, opts ...Option) (time.Duration, error)
}

Advertiser 定义了服务广告的接口

type Discoverer

type Discoverer interface {
	// FindPeers 发现提供特定服务的节点
	// 参数:
	//   - ctx: 上下文对象,用于控制操作的生命周期
	//   - ns: 命名空间字符串,用于标识要查找的服务
	//   - opts: 可选的配置选项
	// 返回:
	//   - <-chan peer.AddrInfo: 返回包含发现节点信息的通道
	//   - error: 操作过程中的错误信息
	FindPeers(ctx context.Context, ns string, opts ...Option) (<-chan peer.AddrInfo, error)
}

Discoverer 定义了节点发现的接口

type Discovery

type Discovery interface {
	// 嵌入 Advertiser 接口
	Advertiser
	// 嵌入 Discoverer 接口
	Discoverer
}

Discovery 是一个组合了服务广告和节点发现功能的接口

type Option

type Option func(opts *Options) error

Option 定义了一个发现选项的函数类型 参数:

  • opts: 选项配置对象指针

返回值:

  • error: 错误信息

func Limit

func Limit(limit int) Option

Limit 设置对等节点数量上限选项 参数:

  • limit: 数量上限

返回值:

  • Option: 返回一个Option函数

func TTL

func TTL(ttl time.Duration) Option

TTL 设置广告的存活时间选项 参数:

  • ttl: 存活时间

返回值:

  • Option: 返回一个Option函数

type Options

type Options struct {
	// Ttl 广告的存活时间
	Ttl time.Duration
	// Limit 对等节点数量上限
	Limit int

	// Other 其他特定实现的选项
	// key和value类型为interface{}的map
	Other map[interface{}]interface{}
}

Options 定义了发现服务的配置选项

func (*Options) Apply

func (opts *Options) Apply(options ...Option) error

Apply 将给定的选项应用到当前Options对象 参数:

  • options: 可变参数,接收多个Option函数

返回值:

  • error: 错误信息

Jump to

Keyboard shortcuts

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