tcp

package
v0.3.5 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PACKET_EVENT        = 1
	PACKET_REQUEST      = 2
	PACKET_RESPONSE     = 3
	PACKET_PING         = 4
	PACKET_PONG         = 5
	PACKET_GOSSIP_REQ   = 6
	PACKET_GOSSIP_RES   = 7
	PACKET_GOSSIP_HELLO = 8
)
View Source
const HEADER_SIZE = 6

Variables

This section is empty.

Functions

This section is empty.

Types

type MessageType

type MessageType int

type OnConnectionFunc added in v0.3.5

type OnConnectionFunc func(address, host string, port int)

type OnMessageFunc

type OnMessageFunc func(fromAddrss string, msgType int, msgBytes *[]byte)

type OnUdpMessage

type OnUdpMessage func(nodeID, ip string, port int)

type State

type State int
const (
	STARTED State = iota
	STOPPED
)

type TCPConnEntry

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

type TCPOptions

type TCPOptions struct {

	// Enable UDP discovery
	UdpDiscovery bool
	// Reusing UDP server socket
	UdpReuseAddr bool

	// UDP port
	UdpPort int
	// UDP bind address (if null, bind on all interfaces)
	UdpBindAddress string
	// UDP sending period (seconds)
	UdpPeriod time.Duration

	UdpMaxDiscovery int

	// Multicast address.
	UdpMulticast string
	// Multicast TTL setting
	UdpMulticastTTL int

	// Send broadcast (Boolean, String, Array<String>)
	UdpBroadcast      []string
	UdpBroadcastAddrs []string
	// TCP server port. 0 means random port
	Port int
	// Static remote nodes address list (when UDP discovery is not available)
	Urls []string
	// Use hostname as preffered connection address
	UseHostname bool

	// Gossip sending period in seconds
	GossipPeriod int
	// Maximum enabled outgoing connections. If reach, close the old connections
	MaxConnections int
	// Maximum TCP packet size
	MaxPacketSize int

	Prefix      string
	NodeId      string
	Namespace   string
	Logger      *log.Entry
	Serializer  serializer.Serializer
	ValidateMsg transit.ValidateMsgFunc
}

type TCPTransporter

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

func CreateTCPTransporter

func CreateTCPTransporter(options TCPOptions) TCPTransporter

func (*TCPTransporter) Connect

func (transporter *TCPTransporter) Connect(registry moleculer.Registry) chan error

func (*TCPTransporter) Disconnect

func (transporter *TCPTransporter) Disconnect() chan error

func (*TCPTransporter) Publish

func (transporter *TCPTransporter) Publish(command, nodeID string, message moleculer.Payload)

func (*TCPTransporter) SetNodeID

func (transporter *TCPTransporter) SetNodeID(nodeID string)

func (*TCPTransporter) SetPrefix

func (transporter *TCPTransporter) SetPrefix(prefix string)

func (*TCPTransporter) SetSerializer

func (transporter *TCPTransporter) SetSerializer(serializer serializer.Serializer)

func (*TCPTransporter) Subscribe

func (transporter *TCPTransporter) Subscribe(command, nodeID string, handler transit.TransportHandler)

type TcpReader

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

func NewTcpReader

func NewTcpReader(port int, onMessage OnMessageFunc, onConnection OnConnectionFunc, disconnectNodeByAddress func(address string), logger *log.Entry) *TcpReader

func (*TcpReader) Close

func (r *TcpReader) Close()

func (*TcpReader) Listen

func (r *TcpReader) Listen() (int, error)

type TcpWriter

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

func NewTcpWriter

func NewTcpWriter(maxConnections int, logger *log.Entry) *TcpWriter

func (*TcpWriter) Broadcast

func (w *TcpWriter) Broadcast(msgType byte, msgBytes []byte) error

func (*TcpWriter) Close

func (w *TcpWriter) Close()

func (*TcpWriter) Connect

func (w *TcpWriter) Connect(nodeID, host string, port int) (*net.TCPConn, error)

func (*TcpWriter) IsConnected

func (w *TcpWriter) IsConnected(nodeID string) bool

func (*TcpWriter) Send

func (w *TcpWriter) Send(nodeID string, msgType byte, msgBytes []byte) error

type UdpServer

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

func NewUdpServer

func NewUdpServer(opts UdpServerOptions, registry moleculer.Registry, onUdpMessage OnUdpMessage, logger *log.Entry) *UdpServer

func (*UdpServer) BroadcastDiscoveryMessage

func (u *UdpServer) BroadcastDiscoveryMessage()

func (*UdpServer) Close

func (u *UdpServer) Close()

func (*UdpServer) Start

func (u *UdpServer) Start() error

func (*UdpServer) StopDiscovering

func (u *UdpServer) StopDiscovering()

type UdpServerEntry

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

type UdpServerOptions

type UdpServerOptions struct {
	Port           int
	Multicast      string
	MulticastTTL   int
	BindAddress    string
	BroadcastAddrs []string
	DiscoverPeriod time.Duration
	MaxDiscovery   int
	Discovery      bool
	Namespace      string
	NodeID         string
}

Jump to

Keyboard shortcuts

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