add network package
This commit is contained in:
parent
3a454d870a
commit
308673b393
42
network/network.go
Normal file
42
network/network.go
Normal file
@ -0,0 +1,42 @@
|
||||
// Package network is an interface for defining a network overlay
|
||||
package network
|
||||
|
||||
import (
|
||||
"github.com/micro/go-micro/config/options"
|
||||
)
|
||||
|
||||
type Network interface {
|
||||
options.Options
|
||||
// Id of this network
|
||||
Id() string
|
||||
// Connect to the network with id
|
||||
Connect(id string) error
|
||||
// Close the network connection
|
||||
Close() error
|
||||
// Accept messages
|
||||
Accept() (*Message, error)
|
||||
// Send a message
|
||||
Send(*Message) error
|
||||
// Advertise a service on this network
|
||||
Advertise(service string) error
|
||||
// Retrieve list of nodes for a service
|
||||
Nodes(service string) ([]Node, error)
|
||||
}
|
||||
|
||||
// Node represents a network node
|
||||
type Node interface {
|
||||
// Id of the node
|
||||
Id() string
|
||||
// The network for this node
|
||||
Network() Network
|
||||
}
|
||||
|
||||
// Message is a message sent over the network
|
||||
type Message struct {
|
||||
// Headers are the routing headers
|
||||
// e.g Micro-Service, Micro-Endpoint, Micro-Network
|
||||
// see https://github.com/micro/development/blob/master/protocol.md
|
||||
Header map[string]string
|
||||
// Body is the encaspulated payload
|
||||
Body []byte
|
||||
}
|
Loading…
Reference in New Issue
Block a user