如何发送"正在打字"响应任务完成前的通知?

时间:2018-01-11 12:31:07

标签: botframework

如何从机器人应用程序发送Is Typing通知,直到机器人处理另一个响应。我现在可以看到它被限制为3秒,但我想延长它直到下一个响应从Bot回来。

任何人都可以帮我吗?我已经看到了一些方法,他们建议递归显示,直到你的任务完成执行但不知道如何实现它。

3 个答案:

答案 0 :(得分:2)

目前,这不是僵尸框架的一个特征。您无法控制显示输入指示符的时间长度。最好的办法是尝试根据需要多次重新输入打字指示器,直到长时间运行的任务完成。这将是一个自定义解决方案,可能已经存在一些例子。

答案 1 :(得分:0)

在处理异步运行时,您可以每隔几秒钟发送一次键入活动。这会占用一些额外的带宽,因此您可以拨打电话。例如

var search = searchclient.Documents.SearchAsync(query);

var typing = turnContext.Activity.CreateReply();
typing.Type = ActivityTypes.Typing;

do {
    turnContext.SendActivityAsync(typing);
} while (!search.Wait(2000));

var results = search.Result.Results;

或将等待时间设置为4秒,这样机器人似乎会稍加思考,然后再输入更多...

答案 2 :(得分:-1)

几乎所有聊天都采用伪造打字指示器“实时”存在的形式。最好甚至不要尝试,而是让它在客户端随机变化,然后试探性地改变自己的逻辑,并让任何结束事件取消它。尤其是如果您的API占用空间是运营成本的一部分。