Skip to content

NOTIF_MSG_REACTIONS_CHANGED (opcode 155) #97

Description

@kotletker

Описание

Сервер не присылает кадр NOTIF_MSG_REACTIONS_CHANGED (opcode 155), когда
собеседник ставит реакцию. Из-за этого on_reaction_update не срабатывает
никогда, хотя подписка и маппинг в библиотеке есть.

Что видно

Включил логирование каждого входящего кадра через on_raw. Пока собеседник
ставил реакцию на моё сообщение, пришло вот что:

opcode=128 поля=['chatId','mark','message','prevMessageId','ttl','unread']  новое сообщение
opcode=129 поля=['chatId','userId']                                          печатает
opcode=130 поля=['chatId','mark','setAsUnread','userId']                     прочитано
opcode=132 поля=['presence','userId']                                        присутствие
opcode=135 поля=['chat']                                                     чат изменился

Кадра 155 нет. Проверял на TCP-сессии (вход по SMS, Client) и на веб-сессии
(WebClient с QR) — одинаково.

Что интересно

Один раз событие всё же пришло, и разобралось после обхода несовпадения типов:

ValidationError: ReactionUpdateEvent.messageId
Input should be a valid string, input_value=117174623371807158, input_type=int

Max присылает messageId числом, а модель объявляет его строкой — это,
кстати, отдельная мелкая проблема, из-за неё событие падает на разборе и не
доходит до обработчиков. У себя обошёл приведением типа перед валидацией.
Поля того единственного события: ['chat_id', 'counters', 'message_id', 'total_count'].

То есть кадр существует и формат известен, но приходит он в каких-то редких
условиях, которые я нащупать не смог.

Вопрос

Нужно ли что-то дополнительно запрашивать у сервера, чтобы он начал слать
обновления реакций — подписку на чат, флаг в конфигурации сессии, что-то
в handshake? Или это ограничение на стороне Max?

Окружение: maxapi-python 2.4.1, Python 3.12, соединение через SOCKS5-прокси,
проверено и на Client, и на WebClient.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions