Реверс-инжиниринг Long Poll ВКонтакте: как я написал сниффер событий
Документация VK API врёт. Ну, не то чтобы врёт — просто недоговаривает. Половина кодов событий не описана, а онлайн-статусы вообще куда-то пропали.
Когда я разрабатывал расширение VKify, мне нужно было отслеживать действия в реальном времени: кто печатает, кто прочитал, кто удалил сообщение. Пришлось разбираться самому.
🔍 Что я сделал
Написал сниффер, который перехватывает все Long Poll события и собирает статистику. Вставляешь код в консоль — и видишь весь поток данных:
- Код 63 — печатает сообщение
- Код 10004 — новое сообщение
- Код 10007 — прочитал сообщение
- Код 10002 — удалил для всех
И ещё десяток недокументированных событий.
🤔 Загадка онлайн-статуса
По документации, события «онлайн/оффлайн» должны приходить через Long Poll. Но их там нет!
Оказалось, VK перенёс их на WebSocket (eh.vk.com). Данные приходят в бинарном формате — полностью разобрать протокол не удалось, но направление понятно.
📦 Что в полной статье
✅ Готовый код сниффера — копируй и вставляй
✅ Продвинутый анализатор с командами и экспортом
✅ Таблица всех найденных кодов событий
✅ Перехват WebSocket
✅ Production-ready модуль для расширений