Понимание HTTP-болтовни между TypeScript BotFramework и эмулятором

Я работаю с решением Microsoft Virtual Assistant Bot Framework в машинописном тексте и использую эмулятор Bot Framework для его локального тестирования. Установка точек останова в решении Virtual Assistant приводит к многократной визуализации адаптивной карты после завершения первоначального выполнения.

Я пытаюсь понять, что здесь происходит, и как явная задержка выполнения кода может вызвать такое количество запросов?

Вот что я вижу в эмуляторе Bot Framework при пошаговом выполнении кода. введите описание изображения здесь

Может ли кто-нибудь уточнить, как фреймворк соотносится с эмулятором после получения запроса? Кроме того, были бы полезны любые рекомендации для сообщества, лучше приспособленного к общему обсуждению BotFramework.


person Clinton Person    schedule 06.08.2019    source источник
comment
Я начну разбираться в этом. Чтобы я мог лучше воспроизвести, не могли бы вы указать, в каком файле и строке вы устанавливаете точки останова, которые вызывают это?   -  person mdrichardson    schedule 06.08.2019
comment
Я прохожу через файлы Index.ts, dialogbot.ts, maindialog.ts и routerDialog. Я считаю, что точка останова файла routerDialog вызывает проблему, и я замечаю, что методы continueDialog / onContinuedialog повторяются.   -  person Clinton Person    schedule 06.08.2019
comment
Общая проблема, которую я пытаюсь отследить, заключается в том, что строка 271 в mainDialog.ts, которая возвращает InterruptionAction.NoAction, не поражена. В результате я не получаю ответа на свое имя после того, как меня спросили, как вас зовут, в демонстрации виртуального помощника. Код никогда не достигает шага finishOnboardingDialog.   -  person Clinton Person    schedule 06.08.2019
comment
Я не могу повторить это. Мое предположение заключается в том, что, поскольку вы задерживаетесь, вы попадаете в политику прямой линии по отправке ошибки 502 после 15 секунд отсутствия ответа от бота. Я не вижу 502 в вашем журнале эмулятора, но я считаю, что это все еще может влиять на бота. Если вы можете опубликовать точные шаги для воспроизведения, я, вероятно, смогу помочь больше. Однако, пожалуйста, включите код, который вы нарушаете ... номера наших строк не совпадают.   -  person mdrichardson    schedule 06.08.2019


Ответы (1)


Не обращайте внимания на мой последний комментарий. Я смог повторить это. Вот что происходит с конкретной проблемой получения нескольких приветственных открыток:

Пока ваша точка останова установлена, бот не может ответить. Через некоторое время (я полагаю, 15 секунд) эмулятор попытается повторно инициировать диалог, снова отправив два conversationUpdates. Это зависит от канала и клиента. Вы не увидите такого поведения, если протестируете образец WebChat. И эмулятор, и веб-чат используют канал веб-чата, но его эмулятор, который реализует повторную попытку и вызывает срабатывание нескольких conversationUpdate во время задержки.

В основном так работает общение с ботами:

введите описание изображения здесь


По поводу других сообществ:

  • Команда MicrosoftBotFramework рекомендует, чтобы вопросы как можно было задавать на странице Stack Overflow. Официальные репозитории BotFrameworkGithub являются предпочтительной платформой для отправки исправления и запросы функций.

    • We look at tickets every business day morning so response time is usually decent
  • Gitter, вероятно, является следующим лучшим, хотя скорость отклика меняется.

  • Также есть несколько репозиториев сообщества для неофициальных расширений.

person mdrichardson    schedule 06.08.2019