bridge

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2019 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListenAndServer

func ListenAndServer(bridgeAddr, proxyAddr string) error

Types

type Caller

type Caller interface {
	// 拉取一个可用的代理节点
	Call(nodeInfo *tunnel.NodeInfo) (*tunnel.Session, error)
	// 注册服务节点
	Register(node *tunnel.Session) error
	// 处理上报的代理节点
	Connect(node *tunnel.Session) error
}

func NewCaller

func NewCaller(bridgeAddress string) Caller

type Channel

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

包含超时的channel

func NewChannel

func NewChannel(timeout time.Duration) *Channel

func (*Channel) Get

func (c *Channel) Get() interface{}

func (*Channel) Set

func (c *Channel) Set(data interface{}) error

type ConsistentParty added in v0.0.5

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

Consistent

func NewParty added in v0.0.5

func NewParty() *ConsistentParty

func (*ConsistentParty) Add added in v0.0.5

func (g *ConsistentParty) Add(listener *NodeListener)

func (*ConsistentParty) Delete added in v0.0.5

func (g *ConsistentParty) Delete(id string)

func (*ConsistentParty) Len added in v0.0.5

func (g *ConsistentParty) Len() int

func (*ConsistentParty) Select added in v0.0.5

func (g *ConsistentParty) Select(id string) string

type Message

type Message struct {
	TaskId string `json:"taskId"`
}

type NodeCaller

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

func (*NodeCaller) Call

func (n *NodeCaller) Call(nodeInfo *tunnel.NodeInfo) (*tunnel.Session, error)

Lookup a node that group and name is same with username and password

func (*NodeCaller) Connect

func (n *NodeCaller) Connect(session *tunnel.Session) error

Event connect

func (*NodeCaller) Register

func (n *NodeCaller) Register(session *tunnel.Session) error

Event register

type NodeListener

type NodeListener struct {
	*tunnel.Session
	// contains filtered or unexported fields
}

func NewNodeListener

func NewNodeListener(session *tunnel.Session, errFunc func(*NodeListener)) *NodeListener

解析节点信息

func (*NodeListener) Close

func (s *NodeListener) Close()

Cancel context and close conn

func (*NodeListener) Notify

func (s *NodeListener) Notify(message *Message) bool

Send a Task

func (*NodeListener) Start

func (s *NodeListener) Start()

type NodeSlave

type NodeSlave struct {
	*tunnel.Session
	// Task message
	Message *Message
}

A info of service when service connect bridge

func NewNodeSlave

func NewNodeSlave(session *tunnel.Session) (*NodeSlave, error)

type Registry added in v0.0.5

type Registry interface {
	Register(listener *NodeListener)

	Select(group, tempId string) (listener *NodeListener, ok bool)

	Find(id string) (listener *NodeListener, ok bool)

	Delete(serviceId string)
}

func NewRegistry added in v0.0.5

func NewRegistry() Registry

type RegistryCenter added in v0.0.5

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

func (*RegistryCenter) Delete added in v0.0.5

func (g *RegistryCenter) Delete(serviceId string)

func (*RegistryCenter) Find added in v0.2.0

func (g *RegistryCenter) Find(id string) (listener *NodeListener, ok bool)

func (*RegistryCenter) Register added in v0.0.5

func (g *RegistryCenter) Register(listener *NodeListener)

Add group Add service

func (*RegistryCenter) Select added in v0.0.5

func (g *RegistryCenter) Select(group, tempId string) (listener *NodeListener, ok bool)

Get serviceId from group Find listener from serviceId

type Server

type Server struct {
	// 通信中心
	BridgeServer *tunnel.Server
	// 代理中心
	ProxyServer *tunnel.Server
	// 消息中心
	Caller Caller
	// socks5
	SocksServer *socks5.Server
}

func NewServer

func NewServer(bridgeAddr, proxyAddr string) *Server

func (*Server) HandleCommunication

func (s *Server) HandleCommunication(conn net.Conn)

处理通信

func (*Server) HandleProxy

func (s *Server) HandleProxy(conn net.Conn)

func (*Server) ListenAndServer

func (s *Server) ListenAndServer() error

func (*Server) Valid added in v0.0.3

func (s *Server) Valid(ctx context.Context, user, password string) (context.Context, bool)

valid username password and call service

Jump to

Keyboard shortcuts

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