client

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2023 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 3 more Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UDPSize uint16 = 65535
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AsyncConn

type AsyncConn struct {
	ConnBase

	MsgBufMap sync.Map

	WriteChan chan *dns.Msg

	ReadChan chan *RspData
	// contains filtered or unexported fields
}

AsyncConn 异步Conn

func (*AsyncConn) Close

func (co *AsyncConn) Close()

Close 清理资源

func (*AsyncConn) Init

func (co *AsyncConn) Init() error

Init 初始化

func (*AsyncConn) ReceiveUdpPack

func (co *AsyncConn) ReceiveUdpPack()

ReceiveUdpPack 异步收包

type Conn

type Conn interface {
	Dial(dstIP string, port int) error
	Close()
	ReadMsg() (*dns.Msg, error)
	WriteMsg(m *dns.Msg) error
	SetWriteDeadline(t time.Time) error
	SetReadDeadline(t time.Time) error
}

Conn conn interface

type ConnBase

type ConnBase struct {
	UdpConn *net.UDPConn
	UDPSize uint16
}

ConnBase 发送Conn

func (*ConnBase) Close

func (co *ConnBase) Close()

Close 关闭

func (*ConnBase) Dial

func (co *ConnBase) Dial(dstIP string, port int) error

Dial UDP dial

func (*ConnBase) ReadMsg

func (co *ConnBase) ReadMsg() (*dns.Msg, error)

ReadMsg 接收消息

func (*ConnBase) SetReadDeadline

func (co *ConnBase) SetReadDeadline(t time.Time) error

SetReadDeadline 设置读超时

func (*ConnBase) SetWriteDeadline

func (co *ConnBase) SetWriteDeadline(t time.Time) error

SetWriteDeadline 设置写超时

func (*ConnBase) WriteMsg

func (co *ConnBase) WriteMsg(m *dns.Msg) (err error)

WriteMsg 发包

type Connector

type Connector struct {
	*plugin.PluginBase
	Timeout      time.Duration
	DialTimeout  time.Duration
	ReadTimeout  time.Duration
	WriteTimeout time.Duration

	Conn *AsyncConn // 用于异步发送

	// DnsID dns id
	DnsID uint32

	SideCarIp   string
	SideCarPort int

	GetSyncConnFunc GetNewConnFunc
	// contains filtered or unexported fields
}

Connector SideCar connector

func (*Connector) DeRegisterServiceHandler

func (c *Connector) DeRegisterServiceHandler(key *model.ServiceEventKey) error

DeRegisterServiceHandler 反注册事件监听器

func (*Connector) DeregisterInstance

func (c *Connector) DeregisterInstance(instance *model.InstanceDeRegisterRequest) error

DeregisterInstance 同步反注册服务

func (*Connector) Heartbeat

func (c *Connector) Heartbeat(instance *model.InstanceHeartbeatRequest) error

Heartbeat 心跳上报

func (*Connector) Init

func (c *Connector) Init(ctx *plugin.InitContext)

Init 初始化

func (*Connector) IsEnable

func (c *Connector) IsEnable(cfg config.Configuration) bool

IsEnable enable

func (*Connector) Name

func (c *Connector) Name() string

Name 返回Name

func (*Connector) Recv

func (c *Connector) Recv() (*namingpb.DiscoverResponse, error)

Recv 异步接收

func (*Connector) RegisterInstance

func (c *Connector) RegisterInstance(request *model.InstanceRegisterRequest) (*model.InstanceRegisterResponse, error)

RegisterInstance 同步注册服务

func (*Connector) RegisterServiceHandler

func (c *Connector) RegisterServiceHandler(svcEventHandler *serverconnector.ServiceEventHandler) error

RegisterServiceHandler 注册服务监听

func (*Connector) ReportClient

func (c *Connector) ReportClient(request *model.ReportClientRequest) (*model.ReportClientResponse, error)

ReportClient 报客户端信息

func (*Connector) Send

func (c *Connector) Send(request *namingpb.DiscoverRequest) error

Send 异步发送

func (*Connector) SyncExchange

func (c *Connector) SyncExchange(m *dns.Msg) (*RspData, time.Duration, error)

SyncExchange 同步发送收取包

func (*Connector) SyncGetResourceReq

func (c *Connector) SyncGetResourceReq(request *namingpb.DiscoverRequest) (*namingpb.DiscoverResponse, error)

SyncGetResourceReq 同步获取资源

func (*Connector) UpdateServers

func (c *Connector) UpdateServers(key *model.ServiceEventKey) error

UpdateServers 更新服务端地址 sideCar模式目前无需实现

type GetNewConnFunc

type GetNewConnFunc func() Conn

GetNewConnFunc returns a new connection function.

type MsgBuffer

type MsgBuffer struct {
	ID          uint16
	ExpectedNum uint16
	ReceiveNum  uint16

	MsgArr    []*dns.Msg
	BeginTime int64
}

MsgBuffer msg buffer 用于合并包

type RspData

type RspData struct {
	RRArr         []dns.RR
	DetailErrInfo *dns.DetailErrInfoRR
	OpCode        int
	RCode         int
}

RspData 返回结果记录结构

func AssembleLogicRspData

func AssembleLogicRspData(msgArr []*dns.Msg) *RspData

AssembleLogicRspData 组包逻辑

Jump to

Keyboard shortcuts

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