Чатбот возобновляет разговор о сворачивании - PullRequest
0 голосов
/ 05 февраля 2020

Я разработал чатбота, используя c# и бот-фреймворк SDK v4. Я подключил его к своей веб-странице, используя ответ js, передав прямой токен. Но теперь, когда я свернул чат, а затем развернул его, он останавливает поток и перезапускается. Но старые сообщения все еще там. Мне не нужно перезапускать поток при сворачивании. Мой reactjs код реализации приведен ниже.

const store = createStore({}, () => next => action => {
         if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
            if (action.payload.activity.from.role === 'bot') {
               this.setState(() => ({ newMessage: true }));
            }
         }

         return next(action);
      });
this.state = {
         minimized: true,
         newMessage: false,
         side: 'right',
         store,
         styleSet: createStyleSet({
            backgroundColor: 'Transparent'
         }),
         token: null
      };
   }

   async handleFetchToken() {
      if (!this.state.token) {
         const res = <ReactWebChat directLine={ this.directLine } />
         console.log(res)
         // const { token } = await res.json();

         // this.setState(() => ({ token }));
      }
   }

   handleMaximizeButtonClick() {
      this.setState(() => ({
         minimized: false,
         newMessage: false,
      }));
   }

   handleMinimizeButtonClick() {
      this.setState(() => ({
         minimized: true,
         newMessage: false
      }));
   }

внутри рендера

render() {
      const {
         state: { minimized, newMessage, side, store, styleSet, token }
      } = this;

<WebChat
                     className="react-web-chat"
                     // onFetchToken={this.handleFetchToken}
                     store={store}
                     styleSet={styleSet}
                     token={"my_token_here"}
                  />

Пожалуйста, помогите мне в решении проблемы. Заранее спасибо.

1 Ответ

1 голос
/ 03 марта 2020

Проверьте это решение Я опубликовал объяснение, как создать базовый c локальный токен-сервер. Включение CORS здесь применимо, только если вы работаете исключительно локально. Если вы туннелируете через ngrok на Azure службу ботов, вам нужно будет внести изменения либо на канале DirectLine вашего бота, либо в службе приложений. Просмотр этого изображения для наглядности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...