Отправка сообщения клиенту и запуск нового диалога через Direct-Line API. Какое лучшее решение? - PullRequest
0 голосов
/ 11 октября 2019

Я отправляю сообщение (вопрос) из моего бэкэнда моему пользователю (мобильное приложение с использованием Direct Line), которое вызывает новое диалоговое окно и сохраняет ответ пользователя.

Чтобы начать новый диалог, я использую localalstorage. Я знаю, что мог бы использовать MemoryStorage или cosmoDB, но мне интересно, есть ли лучшее решение. Я не смог начать диалог из файла bot.js.

Мой бэкэнд отправляет следующее:

{
  from: {
    id: "001",
    name: "backend"
  },
  name: "event",
  type: "event",
  value: "What do you think about X?"
};

как я отправляю вопрос пользователю:

bot.js

this.onEvent(async (context, next) => {
        if (context.activity.name === 'event') {
            await ls("event", "ON");
            await context.sendActivity(context.activity.value)
        }
        await next();
      });

в mainDialog.js ls запускает:

if (ls.get("event") == "ON") {
  return await stepContext.beginDialog("feedbackDialog");
}

, затем в конце feedbackDialog я сбрасываю ls ("событие")

Этот подходработает, но мне интересно, как это можно улучшить.

...