Documentation
¶
Overview ¶
Package tunnel provides gre network tunnelling
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // DiscoverTime sets the time at which we fire discover messages DiscoverTime = 60 * time.Second // KeepAliveTime defines time interval we send keepalive messages to outbound links KeepAliveTime = 30 * time.Second // ReconnectTime defines time interval we periodically attempt to reconnect dead links ReconnectTime = 5 * time.Second )
View Source
var ( // DefaultAddress is default tunnel bind address DefaultAddress = ":0" // The shared default token DefaultToken = "micro" )
View Source
var ( // DefaultDialTimeout is the dial timeout if none is specified DefaultDialTimeout = time.Second * 5 // ErrDialTimeout is returned by a call to Dial where the timeout occurs ErrDialTimeout = errors.New("dial timeout") // ErrDiscoverChan is returned when we failed to receive the "announce" back from a discovery ErrDiscoverChan = errors.New("failed to discover channel") )
Functions ¶
This section is empty.
Types ¶
type DialOption ¶ added in v1.10.0
type DialOption func(*DialOptions)
func DialMulticast ¶ added in v1.10.0
func DialMulticast() DialOption
Dial multicast sets the multicast option to send only to those mapped
func DialTimeout ¶ added in v1.10.0
func DialTimeout(t time.Duration) DialOption
type DialOptions ¶ added in v1.10.0
type Link ¶ added in v1.10.0
type Link interface {
// The id of the link
Id() string
// honours transport socket
transport.Socket
}
Link represents internal links to the tunnel
type Options ¶
type Options struct {
// Id is tunnel id
Id string
// Address is tunnel address
Address string
// Nodes are remote nodes
Nodes []string
// The shared auth token
Token string
// Transport listens to incoming connections
Transport transport.Transport
}
Options provides network configuration options
type Session ¶ added in v1.10.0
type Session interface {
// The unique session id
Id() string
// The channel name
Channel() string
// a transport socket
transport.Socket
}
Session is a unique session created when dialling or accepting connections on the tunnel
type Tunnel ¶
type Tunnel interface {
Init(opts ...Option) error
// Address the tunnel is listening on
Address() string
// Connect connects the tunnel
Connect() error
// Close closes the tunnel
Close() error
// Connect to a channel
Dial(channel string, opts ...DialOption) (Session, error)
// Accept connections on a channel
Listen(channel string) (Listener, error)
// All the links the tunnel is connected to
Links() []Link
// Name of the tunnel implementation
String() string
}
Tunnel creates a gre tunnel on top of the go-micro/transport. It establishes multiple streams using the Micro-Tunnel-Channel header and Micro-Tunnel-Session header. The tunnel id is a hash of the address being requested.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package broker is a tunnel broker
|
Package broker is a tunnel broker |
|
Package link provides a measured transport.Socket link Package link provides a measured link on top of a transport.Socket
|
Package link provides a measured transport.Socket link Package link provides a measured link on top of a transport.Socket |
|
Package transport provides a tunnel transport
|
Package transport provides a tunnel transport |
Click to show internal directories.
Click to hide internal directories.