...
Package transport
Overview ▹
Index ▹
func String ¶
func String() string
type Client ¶
type Client interface {
Socket
}
func Dial ¶
func Dial(addr string, opts ...DialOption) (Client, error)
type DialOption ¶
type DialOption func(*DialOptions)
func WithStream ¶
func WithStream() DialOption
Indicates whether this is a streaming connection
func WithTimeout ¶
func WithTimeout(d time.Duration) DialOption
Timeout used when dialling the remote side
type DialOptions ¶
type DialOptions struct {
Stream bool
Timeout time.Duration
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
}
type ListenOption ¶
type ListenOption func(*ListenOptions)
type ListenOptions ¶
type ListenOptions struct {
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
}
type Listener ¶
type Listener interface {
Addr() string
Close() error
Accept(func(Socket)) error
}
func Listen ¶
func Listen(addr string, opts ...ListenOption) (Listener, error)
type Message ¶
type Message struct {
Header map[string]string
Body []byte
}
type Option ¶
type Option func(*Options)
func Addrs ¶
func Addrs(addrs ...string) Option
Addrs to use for transport
func Codec ¶
func Codec(c codec.Codec) Option
Codec sets the codec used for encoding where the transport does not support message headers
func Secure ¶
func Secure(b bool) Option
Use secure communication. If TLSConfig is not specified we use InsecureSkipVerify and generate a self signed cert
func TLSConfig ¶
func TLSConfig(t *tls.Config) Option
TLSConfig to be used for the transport.
func Timeout ¶
func Timeout(t time.Duration) Option
Timeout sets the timeout for Send/Recv execution
type Options ¶
type Options struct {
Addrs []string
Codec codec.Codec
Secure bool
TLSConfig *tls.Config
// Timeout sets the timeout for Send/Recv
Timeout time.Duration
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
}
type Socket ¶
type Socket interface {
Recv(*Message) error
Send(*Message) error
Close() error
}
type Transport ¶
Transport is an interface which is used for communication between services. It uses socket send/recv semantics and had various implementations {HTTP, RabbitMQ, NATS, ...}
type Transport interface {
Dial(addr string, opts ...DialOption) (Client, error)
Listen(addr string, opts ...ListenOption) (Listener, error)
String() string
}
var (
DefaultTransport Transport = newHTTPTransport()
DefaultDialTimeout = time.Second * 5
)
func NewTransport ¶
func NewTransport(opts ...Option) Transport
ActiveGo 1.8