client

package
v1.9.14 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 7 Imported by: 0

README

Socket клиент.

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

type Client interface {
	net.Conn
	Use(middlewares ...middleware.Func) Client
	SetConnector(connector net.Conn)
}

Socket клиент зависит от компонента протоколы TCP/UDP. Так же пакет предоставляет компонент мониторинга активности соединения.

Объект конфигурации.
type Config struct {
	WriteTimeout time.Duration
	ReadTimeout  time.Duration
}

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

Поле Описание Значение по умолчанию
WriteTimeout Таймаут для записи данных в сокет, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --client.socket.timeout.write
- переменная окружения CLIENT_SOCKET_TIMEOUT_WRITE
- значение в конфиг файле client.socket.timeout.write
10s
ReadTimeout Таймаут для чтения данных из сокет, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --client.socket.timeout.read
- переменная окружения CLIENT_SOCKET_TIMEOUT_READ
- значение в конфиг файле client.socket.timeout.read
10s
Middleware.

Пакет предоставляет следующие готовые middleware, которые добавляются автоматически:

  • Logger - логирует информацию о чтении/записи данных в/из сокета;
  • ReadWriteCounter - добавляет метрику о кол. записанных/прочитанных данных.
Метрики.

Метрики добавляются автоматически при добавлении middleware:

go_socket_client_bytes - кол. записанных/прочитанных данных. Доступные лейблы в метрике:

  • app - имя приложения;
  • action - операция чтения/записи, read - чтение, write - запись;
  • host - ip адрес хоста, с которым происходит обмен данными
  • protocol - протокол tcp/udp, по которому происходит обмен.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Component = &app.Component{
	Dependencies: app.Components{
		connector.Component,
		runner.Component,
	},
	Constructor: app.Constructor(func(container container.Container) error {
		return container.Provides(
			New,
		)
	}),
	Run: app.Run(func(container container.Container) error {
		return container.Invoke(func(socketClient Client, runner runner.Runner) error {
			return runner.AddProcesses(socketClient)
		})
	}),
}

Functions

This section is empty.

Types

type Client

type Client interface {
	net.Conn
	runner.Process
	io.Closer
	Use(middlewares ...Middleware) Client
}

func New

func New(conn net.Conn) Client

type Middleware added in v1.8.12

type Middleware interface {
	Middleware(next net.Conn) net.Conn
}

type MiddlewareFunc added in v1.8.12

type MiddlewareFunc func(next net.Conn) net.Conn

func (MiddlewareFunc) Middleware added in v1.8.12

func (middleware MiddlewareFunc) Middleware(next net.Conn) net.Conn

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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