services

package
v0.0.0-...-f6ab580 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2023 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EventMultiService

type EventMultiService struct {
	proto.UnimplementedEventMultiServiceServer
	// contains filtered or unexported fields
}

EventMultiService обрабатывает соединения от клиентских приложений

func NewEventMultiService

func NewEventMultiService(
	ctx context.Context,
	logger zerolog.Logger,
	clients *collections.ConcurrentMap[string, *model.ClientEvents],
	notify chan<- model.Notification,
	userService users.UserService,
) *EventMultiService

NewEventMultiService создает сервис обслуживания клиентских приложений

func (*EventMultiService) EventStreaming

EventStreaming получает двунаправленный поток отк клиента, достает из метаданных идентификаторы, идентифицирует клиента. В случае валидного клиента создает структуру ClientEvents, добавляет ее в общий словарь, чтобы обработчики команд от telegram могли обратиться к конкретному клиентскому приложению. Также запускается циклический опрос сообщений от клиентского приложения и перенаправление сообщений в каналы, привязанные к конкретному пользователю. Идентификация пользователя происходит в 2 этап: 1. При установке соединения проверяется валидность сертификата пользователя через tls handshake 2. Проверяется существование пользователя с указанным именем и идентификатором сертификата

type Services

type Services struct {
	UserService users.UserService
}

Services содержит настроенный сервисный слой приложения

func NewServices

func NewServices(databaseUri string, logger zerolog.Logger) Services

NewServices настраивает сервисный слой приложения

Jump to

Keyboard shortcuts

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