Не приходит событие «готово» при подключении к Discord websocket - PullRequest
0 голосов
/ 01 августа 2020

В настоящее время я пытаюсь создать программу node.js, которая подключается к Discord API и может предоставить моему боту количество серверов. Я уже задавал несколько вопросов по этому топу c, так что проверьте мою учетную запись, если вам это интересно. В настоящее время программа может подключаться к шлюзу, пульсу и принимать события GUILD_CREATE и GUILD_DELETE, так что эта часть работает. В настоящее время я пытаюсь работать над повторным подключением и возобновлением работы, когда шлюз неизбежно отключается. В документации Discord API говорится, что идентификатор сеанса, используемый для повторного подключения, включен в событие Ready, которое отправляется «после первоначального рукопожатия», однако я не вижу отправленных событий Ready.

Последовательность событий, которые я получаю:

  1. Я запрашиваю URL-адрес для подключения с помощью XMLHttpRequest и получаю ответ
  2. Я подключаюсь к URL-адресу и получение события «connect»
  3. API-интерфейс отправляет сообщение «Hello» с кодом операции 10
  4. Я начинаю пульсировать с сервером
  5. Я отправляю код операции 2 «Identify» на сервер
  6. Я получаю первое подтверждение пульса с кодом операции 11.
  7. Я начинаю получать GUILD_CREATE событий по мере того, как становятся гильдиями, затем все остальные события после этого

Нигде в этой последовательности событий не отправляется сообщение «Готово», или, по крайней мере, я не принимаю его. Я пробовал регистрировать все полученные данные, но все равно не «Готово». Кто-нибудь знает, где в моей последовательности событий попадает "Готов" или что мне нужно сделать, чтобы его увидеть?

1 Ответ

0 голосов
/ 01 августа 2020

Проблема заключалась в том, что один из моих if операторов не записывал данные, когда они были необходимы, и пропускал «Готово». Мне удалось решить проблему, изменив их порядок, чтобы все мои события корректно регистрировались.

...