transport - ActiveState ActiveGo 1.8
...

Package transport

import "github.com/micro/go-micro/transport"
Overview
Index
Subdirectories

Overview ▾

Package is an interface for synchronous communication

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

Subdirectories

Name Synopsis
..
codec
json
noop
http
mock