Documentation
¶
Index ¶
- Variables
- type Mode
- type ParamsMerger
- type Pts
- type ServerCredentials
- type ServerUpdater
- type Update
- type VkLongPoll
- type VkLongPollOption
- func WithMode(mode Mode) VkLongPollOption
- func WithModeSum(modes ...Mode) VkLongPollOption
- func WithParamsMerger(merger ParamsMerger) VkLongPollOption
- func WithServerUpdater(updater ServerUpdater) VkLongPollOption
- func WithUpdatesJsonPath(path ...string) VkLongPollOption
- func WithVersion(version int) VkLongPollOption
- func WithWait(wait time.Duration) VkLongPollOption
- type VkLongPollOptions
Constants ¶
This section is empty.
Variables ¶
var DefaultUpdatesJsonPath = []string{"updates"}
Путь параметра, где в ответе сервера хранятся обновления
var DefaultVersion = 3
Версия Long Poll по умолчанию
var DefaultWait = 90 * time.Second
Длительность запроса по умолчанию
Functions ¶
This section is empty.
Types ¶
type Mode ¶
type Mode int
Режим работы
const Attachments Mode = 2
Получать вложения
const Extended Mode = 8
Возвращать расширенный набор событий
const ExtraFields Mode = 64
Возвращать поля $extra
const ReturnPts Mode = 32
Возвращать поле pts для дальнейшей работы
const ReturnRandomId Mode = 128
Возвращать поле random_id
var DefaultMode Mode = 0
Режим работы по умолчанию
type ParamsMerger ¶
type ServerCredentials ¶
type ServerUpdater ¶
type ServerUpdater func(ctx context.Context) (*ServerCredentials, error)
func UniversalServerUpdater ¶
func UniversalServerUpdater(req *request.Request, exec *executor.Executor) ServerUpdater
Универсальный модуль для обновления сервера Подходит для Long Poll сообществ, а также для LongPoll пользователя Обработчик использует executor, в нем он выполняет указанный запрос req Урпавление токенами, сессиями и параметарми запроса происходит уже на уровне создания запроса вами
type VkLongPoll ¶
type VkLongPoll struct {
HttpClient *http.Client
Ts int64
// contains filtered or unexported fields
}
func New ¶
func New() *VkLongPoll
Создает инстанс лонгполла Принимает executor - структура для отправки запросов к VK API
func (*VkLongPoll) Pts ¶
func (v *VkLongPoll) Pts() *Pts
Возвращает последнее полученное значение pts
func (*VkLongPoll) Recv ¶
func (v *VkLongPoll) Recv(ctx context.Context, opts ...VkLongPollOption) ([]Update, error)
Делает запрос на получение списка новых событий Возвращает список событий в [][]byte, а также значение поля pts, если оно есть в ответе Автоматически переподключается в случае ошибки
Чтение событий только синхронное, чтобы иметь всегда определенный ts (последний) Если есть задача читать события одновременно на один и тот же источник - лучше всего создать новое поделючение Long Poll
func (*VkLongPoll) RecvOpt ¶
func (v *VkLongPoll) RecvOpt(ctx context.Context, opt *VkLongPollOptions) ([]Update, error)
То же самое, что Recv, но опции - ссылка на структуру
type VkLongPollOption ¶
type VkLongPollOption func(v *VkLongPollOptions)
func WithMode ¶
func WithMode(mode Mode) VkLongPollOption
Устанавливает режим работы в натсройки подключения
func WithModeSum ¶
func WithModeSum(modes ...Mode) VkLongPollOption
Находит сумму всех указанных режимов и устанавливает в настройки подключения
func WithParamsMerger ¶
func WithParamsMerger(merger ParamsMerger) VkLongPollOption
Устанавливает кастомные параметры в запрос к Long Poll серверу (перезаписывает уже установленные, вроде ts, mode, wait и т.д)
func WithServerUpdater ¶
func WithServerUpdater(updater ServerUpdater) VkLongPollOption
Устанавливает обработчик для обновления информации о Long Poll соединении Здесь, например, вы можете делать запрос на messages.getLongPollServer и получить значение ts, key и т.д Если у вас нет цели писать собственный обработчик, то используйте UniversalServerUpdater
func WithUpdatesJsonPath ¶
func WithUpdatesJsonPath(path ...string) VkLongPollOption
Устанавливает путь параметра updates в JSON схеме
func WithVersion ¶
func WithVersion(version int) VkLongPollOption
Устанавливает версию Long Poll (2, 3, 4, 5)
func WithWait ¶
func WithWait(wait time.Duration) VkLongPollOption
Устанавливает длительность одного запроса
type VkLongPollOptions ¶
type VkLongPollOptions struct {
Wait time.Duration
ServerUpdater ServerUpdater
Mode Mode
Version int
ParamsMerger ParamsMerger
UpdatesJsonPath []string
}
func BuildOptions ¶
func BuildOptions(opts ...VkLongPollOption) *VkLongPollOptions
Суммирует все функциональные опции и возвращает структуру опций