proxyrec

package
v0.0.0-...-58a2b35 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_REC_PROXY_CNT    = 3               // 最大存储节点数量
	ProxySyncTime        = 5 * time.Second // 节点同步时间
	ProxyDataInvalieTime = 2               // 节点数据失效次数
	CacheValidTime       = time.Second     // 代理缓存有效时间
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ProxyCache

type ProxyCache struct {
	// contains filtered or unexported fields
}

代理记录信息

func NewProxyCache

func NewProxyCache(ctx context.Context) *ProxyCache

* NewProxyData 创建代理数据对象

func (*ProxyCache) AddOrUpdateProxyRec

func (pc *ProxyCache) AddOrUpdateProxyRec(nodes []*ProxyInfo) bool

* AddOrUpdateProxyRec 添加或更新代理记录信息 * * @param nodes []ProxyInfo 代理信息列表 * @param proxyId Address 代理节点地址 * @param recvId Address 存储节点地址 * @return success bool 是否添加成功

func (*ProxyCache) GetNodeIdProxy

func (pc *ProxyCache) GetNodeIdProxy(nodeId *nodeStore.AddressNet, machineId string) (exist bool, res []*ProxyInfo)

* GetNodeIdProxy 根据节点地址和机器id获取对应的缓存代理信息,如果机器id传入空串,将会获取该地址对应的所有端的代理信息 * * @param nodeId *AddressNet 客户端节点id * @param machineId string 客户端机器id, 如果传入空串, 将获取地址对应所有machineid的客户端地址 * @return exist bool 是否存在该节点对应的代理信息 * @return res []*ProxyInfo 代理信息列表

type ProxyData

type ProxyData struct {
	// contains filtered or unexported fields
}

代理记录信息

func NewProxyData

func NewProxyData(ctx context.Context) *ProxyData

* NewProxyData 创建代理数据对象

func (*ProxyData) AddOrUpdateProxyRec

func (pr *ProxyData) AddOrUpdateProxyRec(nodes []ProxyInfo, proxyId, recvId *nodeStore.AddressNet) bool

* AddOrUpdateProxyRec 添加或更新代理记录信息 * * @param nodes []ProxyInfo 代理信息列表 * @param proxyId Address 代理节点地址 * @param recvId Address 存储节点地址 * @return success bool 是否添加成功

func (*ProxyData) GetNodeIdProxy

func (pr *ProxyData) GetNodeIdProxy(clientNode *ProxyInfo) (exist bool, res []*ProxyInfo)

* GetNodeIdProxy 根据节点地址和机器id获取对应的代理信息,如果机器id传入空串,将会获取该地址对应的所有端的代理信息 * * @param clientNode *ProxyInfo 代理信息 * @return exist bool 是否存在该节点对应的代理信息 * @return res []*ProxyInfo 代理信息列表

func (*ProxyData) GetNodeIdProxy2

func (pr *ProxyData) GetNodeIdProxy2(nodeId *nodeStore.AddressNet, machineId string) (exist bool, res []*ProxyInfo)

* GetNodeIdProxy2 根据节点地址和机器id获取对应的代理信息,如果机器id传入空串,将会获取该地址对应的所有端的代理信息 * * @param nodeId *AddressNet 节点地址 * @param machineId string 机器id,如果机器id传入空串,将会获取该地址对应的所有端的代理信息 * @return exist bool 是否存在该节点对应的代理信息 * @return res []*ProxyInfo 代理信息列表

type ProxyDetailInfo

type ProxyDetailInfo struct {
	// contains filtered or unexported fields
}

* 代理节点详情信息

func NewProxyDetail

func NewProxyDetail(ctx context.Context, msgCenter *message_center.MessageCenter) *ProxyDetailInfo

* NewProxyData 创建代理详情对象

func (*ProxyDetailInfo) AddProxyDetail

func (pd *ProxyDetailInfo) AddProxyDetail(clientAddr, proxyId nodeStore.AddressNet, machineId string, version int64) bool

* AddProxyDetail 增加代理详情 * * @param clientAddr AddressNet 被代理的节点地址 * @param proxyId AddressNet 代理节点地址 * @param machineId string 被代理的节点机器id * @param version int64 设置代理的版本号 * @return success bool 是否添加成功

func (*ProxyDetailInfo) AddWhiteNode

func (pd *ProxyDetailInfo) AddWhiteNode(nodeId *nodeStore.AddressNet) bool

* 添加保存节点白名单, 即会保存所有节点代理信息 * * @param nodeId *AddressNet 添加的节点地址

func (*ProxyDetailInfo) AddWhiteNodes

func (pd *ProxyDetailInfo) AddWhiteNodes(nodeIds []nodeStore.AddressNet) bool

* 添加保存节点白名单列表, 即会保存所有节点代理信息 * * @param nodeIds []*AddressNet 添加的节点地址

func (*ProxyDetailInfo) CheckIsSaveAddr

func (pd *ProxyDetailInfo) CheckIsSaveAddr(addr *nodeStore.AddressNet) bool

* CheckIsSaveAddr 检查地址是不是存储节点地址 * * @param offlineAddr AddressNet 下线节点地址 * @return exist bool 是不是存储节点标识

func (*ProxyDetailInfo) CheckWhiteNode

func (pd *ProxyDetailInfo) CheckWhiteNode(nodeId *nodeStore.AddressNet) bool

* 检查节点是不是白名单节点 * * @param nodeId *AddressNet 检查的节点地址 * @return exist bool 是不是白名单标识

func (*ProxyDetailInfo) GetWhiteNode

func (pd *ProxyDetailInfo) GetWhiteNode() []*nodeStore.AddressNet

* 获取所有的保存节点白名单列表 * * @return res []*AddressNet 白名单节点地址列表

func (*ProxyDetailInfo) NodeOfflineDeal

func (pd *ProxyDetailInfo) NodeOfflineDeal(offlineAddr *nodeStore.AddressNet)

* NodeOfflineDeal 存储节点下线处理 * * @param offlineAddr AddressNet 下线节点地址

func (*ProxyDetailInfo) NodeOnlineDeal

func (pd *ProxyDetailInfo) NodeOnlineDeal(node *nodeStore.Node)

* NodeOnlineDeal 超级节点上线处理 * * @param node AddressNet 超级节点信息

func (*ProxyDetailInfo) RemoveProxyDetail

func (pd *ProxyDetailInfo) RemoveProxyDetail(addr *nodeStore.AddressNet, machineId string, version int64) bool

* RemoveProxyDetail 删除代理详情 * * @param addr AddressNet 被代理的节点地址 * @param machineId string 被代理的节点机器id * @param version int64 设置代理的版本号 * @return exist bool 之前是否存在代理信息

func (*ProxyDetailInfo) RemoveWhiteNode

func (pd *ProxyDetailInfo) RemoveWhiteNode(nodeId *nodeStore.AddressNet)

* 移除保存节点白名单列表 * * @param nodeId *AddressNet 删除的白名单节点地址

type ProxyInfo

type ProxyInfo struct {
	NodeId    *nodeStore.AddressNet `json:"Id"`        // 客户端地址
	ProxyId   *nodeStore.AddressNet `json:"-"`         // 代理地址
	MachineId string                `json:"machineid"` // 机器id
	Version   int64                 `json:"version"`   // 版本号
	// contains filtered or unexported fields
}

* 代理信息

func ParseProxyProto

func ParseProxyProto(bs *[]byte) (*ProxyInfo, error)

* 解析代理信息

func ParseProxyesProto

func ParseProxyesProto(bs *[]byte) ([]ProxyInfo, error)

* 解析代理数组信息

func (*ProxyInfo) Proto

func (pi *ProxyInfo) Proto() ([]byte, error)

* 生成proto信息

type ProxyNodeRecInfo

type ProxyNodeRecInfo struct {
	NodeId        *nodeStore.AddressNet  // 客户端地址
	ProxyId       *nodeStore.AddressNet  // 代理地址
	SaveNodes     map[string]interface{} // 保存数据的节点地址 key:string=节点地址;value:nil=nil;
	MachineInfoes map[string]int64       // 机器id信息map key:string=机器ID;value:int64=版本号;
}

* 代理节点记录信息

Jump to

Keyboard shortcuts

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