Bot v4网络聊天频道,发送消息非常缓慢

时间:2019-05-30 16:45:09

标签: botframework

我正在使用最新的v4网络聊天react lib。在模拟器中,一切正常且快速。但是,当我将其部署在azure上并使用网络聊天频道,并键入一条消息并发送时,“发送”标签会出现并停留一会儿,然后说“立即”。问题在于它非常慢,发送标签实际上停留了大约2秒钟。这可能是什么原因?

a busy cat

在github https://github.com/MicrosoftDocs/bot-docs/issues/1172

中也提出了同样的问题

1 个答案:

答案 0 :(得分:1)

它指示您的用户消息到达bot端点的速度。仿真器是本地的,因此要快一点(在这种情况下为2秒)。

“正在发送”表示用户已发送该消息,而“立即”消息则表示该漫游器已阅读该用户的消息。您的漫游器显然需要2秒才能达到您的天青终结点。为了从“发送”变为“已发送”,Direct Line通道需要明确告知Web Chat机器人已读取它。从技术上讲,这意味着Direct Line频道会将用户消息的副本再次发送回Web Chat。

例如,这个故事。

  1. 用户说“我的名字叫约翰”
  2. 说“你好,约翰”
    • 如果您在浏览器中查看来自Direct Line通道的网络流量,应该会看到一些按此特定顺序发送或接收的数据包:
      1. HTTP POST“我的名字叫约翰”,返回200 OK
      2. “ Hello,John”(或作为Web Socket数据包)的HTTP GET 200 OK
      3. “我的名字叫约翰”(或作为Web套接字数据包)的HTTP GET 200 OK
    • 如果未收到第三个数据包,则网络聊天将不认为邮件已成功发送。
    • 如果您使用的是我们的Direct Line通道(不是自定义bot适配器),则只要bot对HTTP请求“积极及时”响应,“ Direct Line”通道将自动为您组成第三个数据包。约翰”来自直线频道。换句话说,如果漫游器出错或在处理用户消息时花费的时间太长,则Web Chat不会更改为“ Just Now”状态,因为它是负面响应。 (对于超时,我认为硬性期限是120秒。)

如果您在漫游器中添加了Application Insights,则可以查看仪表板来查看网络流量:

application insights example dashboard