Node.js 如何从bot中向Microsoft bot发送消息,以便消息通过对话框流并得到相应的响应?

Node.js 如何从bot中向Microsoft bot发送消息,以便消息通过对话框流并得到相应的响应?,node.js,typescript,botframework,direct-line-botframework,Node.js,Typescript,Botframework,Direct Line Botframework,这篇文章的标题应该是“当有人在使用bot时,上下文被清除或服务器重新启动时,我如何使bot做出优雅的响应。a.这让人困惑,B.我需要分部分进行规划,所以逻辑上这将是第一部分 如果不使用directline,也许我必须最好不使用directline,我如何才能像在客户端与bot对话一样向bot发送一条消息。例如,当我在客户端说“hello”时,bot然后处理该信息并通过我的对话框作出响应 我想“预先”向bot发送一条消息,这样它会主动引发响应。现在这不是主动消息,因为这是另一个用户进入bot并与客

这篇文章的标题应该是“当有人在使用bot时,上下文被清除或服务器重新启动时,我如何使bot做出优雅的响应。a.这让人困惑,B.我需要分部分进行规划,所以逻辑上这将是第一部分

  • 如果不使用directline,也许我必须最好不使用directline,我如何才能像在客户端与bot对话一样向bot发送一条消息。例如,当我在客户端说“hello”时,bot然后处理该信息并通过我的对话框作出响应
  • 我想“预先”向bot发送一条消息,这样它会主动引发响应。现在这不是主动消息,因为这是另一个用户进入bot并与客户端对话,这不是我想要的

    同样,我如何从bot内部向bot发送消息

  • 我之所以这样做是因为这样的原因:如果服务器关闭,或者此人由于某种原因失去了上下文,并且他们已经在bot中,那么他们必须重新进入bot。具体地说,这就好像他们正在“重新启动””他说。但是,在emulator中,当您重新启动对话时,您将重新进入bot,并重新连接/重新启动用户。在这种情况下,两者都不做。你就在那里。。。下次输入时,路径应该已经存在 在我的例子中,这就像上下文被删除,必须重新建立自己,然后你可以继续与机器人对话


    对用户体验的影响是这样的:他们键入文本,机器人会忽略,它会重新启动,然后他们必须再次键入文本

    您使用的是什么状态存储?如果您正在使用内存存储,那么您看到的行为是预期的。内存存储是不稳定的和临时的。您需要使用一个持久且更健壮的状态存储(Cosmos、Azure Blob)。通过这样做,用户所处的“位置”(在对话中,例如瀑布式对话框中)得以保留。通常通过会话状态

    有关更多信息,请参见此处:

    没有办法完全按照你的要求去做。主动消息是最接近的。但主动消息并不完全适用于其他用户进入bot的情况。它们通常用于外部事物可能触发向用户发送消息的情况(例如,天气报告或达到阈值的股票)。对于主动消息,您肯定需要某种持久状态存储