botBuilder-timeout模块无法识别endConversation操作

时间:2018-03-28 03:57:18

标签: node.js botframework

我对Botbuilder-timeout模块的使用存在问题。 我尝试将它添加到我的Bot中,以便在机器人处于非活动状态一段时间后触发对话结束。我按照链接" https://www.npmjs.com/package/botbuilder-timeout"进行了操作。 它适用于不活动。但如果我的对话成功结束用户操作,那么也会超时触发。 所以 例如, 我已将setconversiontimeout设置为30秒。因此,对于任何给定点,机器人对话在30秒内处于非活动状态,它将触发超时操作。 但如果谈话正常进行,僵尸程序会因用户操作而结束,就像聊天一样。我的代码触发session.endConversation(); 但超时功能无法识别此结束转换,仍会询问用户是否仍在那里。并结束已经结束的对话。

我不确定出了什么问题。

你能帮忙做点什么吗?我如何准确地结束对话,以便这个计时器可以识别它并且不会结束已经结束的对话。

1 个答案:

答案 0 :(得分:0)

实际上,此模块中存在错误,请参阅https://github.com/User1m/botbuilder-timeout/blob/master/src/timeout.ts#L51的源代码,其中源代码为: _this.clearTimeoutHandlers(event);event对象传递给功能区。

但是,函数定义为private clearTimeoutHandlers(convoId: string),需要event.address.conversation.id

因此,您可以直接将第39行的botbuilder-timeout/dist/timeout.js资源修改为: _this.clearTimeoutHandlers(convoId);

我已经在https://github.com/User1m/botbuilder-timeout/pull/3向此存储库应用了拉取请求,如果通过,您可以更新此模块。