connector

package
v1.9.18 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2024 License: MIT Imports: 9 Imported by: 0

README

Протоколы TCP/UDP.

Компонент предоставляет "голый" socket клиент. Реализует интерфейс net.Conn, который доступен в контейнере объектов.

Объект конфигурации.
type Config struct {
	Protocol        string
	Address         string
	Port            uint16
	KeepAlivePeriod time.Duration
}

Описание полей:

Поле Описание Значение по умолчанию Доступные значения
Protocol Протокол socket клиента, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --client.socket.protocol
- переменная окружения CLIENT_SOCKET_PROTOCOL
- значение в конфиг файле client.socket.protocol
tcp tcp, udp
Address Адрес хоста для подключения, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --client.socket.address
- переменная окружения CLIENT_SOCKET_ADDRESS
- значение в конфиг файле client.socket.address
127.0.0.1
Port Порт хоста для подключения, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --client.socket.port
- переменная окружения CLIENT_SOCKET_PORT
- значение в конфиг файле client.socket.port
8081
KeepAlivePeriod Периодичность рассылки пакетов, для поддержания открытого соединения, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --client.socket.keep_alive_period
- переменная окружения CLIENT_SOCKET_KEEP_ALIVE_PERIOD
- значение в конфиг файле client.socket.keep_alive_period

Documentation

Index

Constants

View Source
const (
	ProtocolFieldName        = "client.socket.protocol"
	HostFieldName            = "client.socket.host"
	PortFieldName            = "client.socket.port"
	KeepAlivePeriodFiledName = "client.socket.keep_alive_period"
	DSNFieldName             = "client.socket.dsn"

	ProtocolTCP = "tcp"
	ProtocolUDP = "udp"

	ProtocolDefault = ProtocolTCP
	HostDefault     = "127.0.0.1"
	PortDefault     = uint16(8081)
)

Variables

View Source
var Component = &app.Component{
	Dependencies: app.Components{
		logger.Component,
		configurator.Component,
	},
	Constructor: app.Constructor(func(container container.Container) error {
		return container.Provides(
			NewConfig,
			NewWithConfigurator,
		)
	}),
	BindFlags: app.BindFlags(BindFlags),
}
View Source
var (
	DSNDefault = fmt.Sprintf("%s:%d", HostDefault, PortDefault)
)

Functions

func BindFlags

func BindFlags(flagSet *pflag.FlagSet, container container.Container) error

func New

func New(config *Config, informer logger.Informer) (net.Conn, error)

func NewTCP

func NewTCP(config *Config, informer logger.Informer) (*net.TCPConn, error)

func NewUDP

func NewUDP(config *Config, informer logger.Informer) (*net.UDPConn, error)

func NewWithConfigurator

func NewWithConfigurator(
	config *Config,
	configurator configurator.Configurator,
	informer logger.Informer,
) (net.Conn, error)

Types

type Config

type Config struct {
	DSN             string
	Protocol        string
	Host            string
	Port            uint16
	KeepAlivePeriod time.Duration
}

func Configuration

func Configuration(config *Config, configurator configurator.Configurator) *Config

func NewConfig

func NewConfig() *Config

Jump to

Keyboard shortcuts

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