You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DirectLine Speech适配Web Chat:无欢迎消息及机器人活动渲染

解决方案

1. 先确认机器人消息是否到达Web Chat Store

在你的store中间件中添加日志,监听机器人消息的传入事件,确认Web Chat是否接收到了机器人发送的活动:

const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
  if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
    console.log("Conexión establecida con Direct Line Speech, enviando evento 'webchat/join'");
    dispatch({
      type: 'WEB_CHAT/SEND_EVENT',
      payload: {
        name: 'webchat/join',
        value: {
          language: "es-ES",
          mail: "h@gmail.es",
          client: "Cliente123",
          centro: "CentroX",
          ambito: "app",
          traces: "logs"
        }
      }
    });
  }
  // 添加日志监听机器人消息
  if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
    console.log('收到机器人活动:', action.payload.activity);
  }
  return next(action);
});
  • 如果控制台能打印出机器人的欢迎消息,说明问题出在UI渲染环节,需要检查Web Chat配置;
  • 如果没有打印,说明适配器未接收到机器人消息,需要排查连接或机器人端的配置。

2. 显式启用WebSocket连接

在创建DirectLine Speech适配器时,显式指定启用WebSocket,确保消息通道稳定:

const adapters = await window.WebChat.createDirectLineSpeechAdapters({
  fetchCredentials,
  webSocket: true
});

3. 延迟发送webchat/join事件

DirectLine Speech的连接就绪时机可能与标准DirectLine不同,尝试延迟发送join事件,避免因连接未完全就绪导致后续消息通道异常:

if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
  console.log("Conexión establecida con Direct Line Speech, enviando evento 'webchat/join'");
  setTimeout(() => {
    dispatch({
      type: 'WEB_CHAT/SEND_EVENT',
      payload: {
        name: 'webchat/join',
        value: {
          language: "es-ES",
          mail: "h@gmail.es",
          client: "Cliente123",
          centro: "CentroX",
          ambito: "app",
          traces: "logs"
        }
      }
    });
  }, 1000);
}

4. 确保机器人返回的消息包含speak字段

DirectLine Speech适配器默认会处理语音合成,若机器人返回的消息缺少speak字段,可能影响UI渲染。在C#机器人的欢迎消息中添加该字段:

var welcomeMessage = MessageFactory.Text("欢迎使用智能客服!");
welcomeMessage.Speak = "欢迎使用智能客服!"; // 也可使用SSML格式文本
await turnContext.SendActivityAsync(welcomeMessage, cancellationToken);

5. 升级Web Chat到最新稳定版

旧版本的Web Chat可能存在DirectLine Speech适配器的兼容性问题,替换为最新版的Web Chat脚本:

<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>

内容的提问来源于stack exchange,提问作者Victor Muñoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:12:15