messages

package
Version: v0.0.0-...-bda9b43 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2021 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BigMessageBucket = "bigmsg"
	BigMessageSize   = 1024 * 128
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BigMsgService

type BigMsgService interface {
	Put(key []byte, data []byte) (proxydata []byte, err error) // блокирующий метод сохранения данных
	Get(key []byte) ([]byte, error)                            // блокирующий метод получения данных
	Remove(key []byte) error                                   // удаление данных
	DataIsProxy(data []byte) bool                              // проверка, что принятое сообщение является прокси сообщением
	GetKey(proxyData []byte) []byte                            // проверка, что принятое сообщение является прокси сообщением
}

Интерфейс сервиса сохранения и получения больших сообщений.

type Message

type Message interface {
	Data() []byte              // получение данных из сообщения
	SetData(data []byte)       // метод лоя подмены нагрузки сообщения
	Respond(data []byte) error // отправка ответа н сообщение с запросом ответа
}

Интерфейс сообщения

type Service

type Service interface {
	SendMessage(subj string, data []byte) error                                                                                                          // отправка сообщения обычным способом
	SendStreamingMessage(subj string, data []byte) error                                                                                                 // отправка сообщения с очередью
	SendRequest(subj string, data []byte, timeout time.Duration) (Message, error)                                                                        // отправка сообщения с запросом ответа
	HandleMessages(ctx context.Context, wg *sync.WaitGroup, subj string, handleFunc func(ctx context.Context, wg *sync.WaitGroup, msg Message))          // обработка обычных сообщений
	HandleStreamingMessages(ctx context.Context, wg *sync.WaitGroup, subj string, handleFunc func(ctx context.Context, wg *sync.WaitGroup, msg Message)) // обработка сообщений из очереди
	Sub(subj string) (out <-chan Message, unsub func() error)                                                                                            // подписка на обычные сообщения
	SubStreaming(subj string) (out <-chan Message, unsub func() error)                                                                                   // подписка на сообщения с очередью
	IsConnected() bool                                                                                                                                   // есть соединение
}

Интерфейс модуля сообщений. Сервис сообщений должен обеспечивать функции отправки и получения сообщений удобным образом.

Source Files

Directories

Path Synopsis
bigmessageservice
messageservice

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL