Сработает ли частотный ограничения VK API в такой реализации запросов?
У ВК апи есть частотный ограничения, 20 запросов в секунду.
Есть метод execute, с помощью которого можно объеденять несколько вызовов апи в один. До 25 вызовов.
Допустим у меня есть игровой ВК бот, которому нужно достаточно часто высылать ответы пользователям. Предположим, что в игре будет онлайн 500 человек (не знаю, много это или нет), и каждые 2 секунды, он пишет что-то боту. И того, что бы пользователи получали ответы без задержек, сервер должен отсылать по 250 сообщений в секунду.
Сервер: (NodeJs)
Есть некая бд, допустим redis, каждый запрос пользователя пихаем туда (делаем очередь), если пользователь уникален, то есть ничего ещё не писал и не ждёт ответа.
В другой части сервера, есть интервал в 0.05 сек.
Он достаёт из бд 25 человек, объединяет все в один execute и отсылает ВК. В сумме получается 500 сообщений в секунду.
Вопрос: есть ли шанс поймать блокировку api метода для токена? И как этого избежать?
С одной стороны я не нарушаю частотный ограничения, с другой - есть подозрения, что работать все будет не по плану.
Сергей Соколов, Можете подробнее описать схему подключения пользователей к WebSoket серверу.
Задумка в том, что есть группа ВК, в ней личные сообщения, и на них отвечает бот.
edward_freedom, execute() можно вызывать с ключом доступа сообщества, как и messages.send(). Так что с этим проблем быть не должно. Нарушений правил именно в этом, вроде бы, нет.
Fufilda, с собственным websocket'ом я подразумеваю уход от «родного» чата ВК в пользу своего приложения ВК (ваш сайт в iframe). Посетителям придётся жать другую кнопку.
Сергей Соколов, я думал над реализацией данной идеи через VK Mini Apps, и вроде это действительно решает многие проблемы, но хочется именно через сообщения ВК. (Возможно, не самое умное решение)
Как я понял, то что сервер будет на "пике" загрузки, генерировать 20 событий execute с 25 message.send ежесекундно, все будет в порядке?
Fufilda, думаю, всё будет в порядке, пока вы соблюдаете правила и уважаете лимиты, а также обрабатываете ошибки.
Если это какой-то рекламный проект, в который вливаются деньги на привлечение и раскрутку, вероятно, что потолка в 20 * 25 = 500 в секунду станет недостаточно. Тогда надо иметь наготове план-Б.
Нет базы пользователей для тестовой рассылки, а слать самому себе, скорее всего VK примет это за Спам, (вызов однотипных действий).
К тому же, если я буду "тестить" хотя бы на протяжении 10 секунд, то сервер напишет мне 5 000 сообщений.
Минимальные тесты я провел, и вроде все работает. Здесь я хотел получить точный ответ от людей которые имеют опыт работы с VK API и знают многие тонкости.