Botframework 向bot发送消息:v3 directline.postActivity与v4 dispatch from webchat store

Botframework 向bot发送消息:v3 directline.postActivity与v4 dispatch from webchat store,botframework,web-chat,Botframework,Web Chat,我们正在从BotFramework Webchat v3迁移到v4。通常,我们通过使用directline.postActivity函数从v3 BotChat创建的directline对象从聊天室发送消息。然而,在我们的v4实现中,当发布这样的活动时,聊天窗口中显示的消息的行为存在问题 如图所示,通过webchat redux商店发送消息似乎是推荐的方法 我想知道这两种用法的区别是什么?v3和v4版本之间似乎有些不同,我很难在文档中找到关于这方面的参考。是否应完全避免directline.pos

我们正在从BotFramework Webchat v3迁移到v4。通常,我们通过使用directline.postActivity函数从v3 BotChat创建的directline对象从聊天室发送消息。然而,在我们的v4实现中,当发布这样的活动时,聊天窗口中显示的消息的行为存在问题

如图所示,通过webchat redux商店发送消息似乎是推荐的方法


我想知道这两种用法的区别是什么?v3和v4版本之间似乎有些不同,我很难在文档中找到关于这方面的参考。是否应完全避免directline.postActivity?

没有任何地方对其进行记录,但最佳实践是通过使用Web Chat redux商店及其可用列表通过演示的

从本质上说,WebChatV4是建立在它的基础上的,它确实使用了可观察的对象。然后,网络聊天将直接观察到的信息转换为自己的方法,供内部和用户使用


正如您所指出的,可以在网络聊天中使用直连观察,但这既不是最好的方法,也不是最好的实践。主要是因为网络聊天不是专门针对他们的使用而设计的,除了内部。它可以工作,但它会让你产生潜在的好奇行为。

接受/向上投票一个答案为更大的堆栈溢出社区和任何有类似问题的人服务。如果你觉得我的回答足够,请“接受”并投票表决。如果没有,让我知道我还能提供什么帮助!我懂了。实际上,我正在使用es5包,基于v4示例,它们似乎都没有直接与directline对象接口。我不确定我的v3方法是否正确,但在某些情况下通道会无响应。因此,我们的方法是用空文本活动轮询bot,同时监听水印被设置为在客户端处理进一步逻辑的信号。对于v4,我想展示一个欢迎场景,因此我通过监听“DIRECT\u LINE/CONNECT\u Completed”并在不进行轮询的情况下发送欢迎启动事件来遵循示例。我关心的是,这是否是确保可靠连接的“安全”方法。我只是很难找到涉及此类主题的文档/对话。我不确定你所说的“这是‘安全’方法”是什么意思。你能解释一下吗?很抱歉,我认为我的困惑是因为没有完全理解Directline连接是如何建立的。至于我所说的“安全”,在v3中,有时在设置水印之前会删除消息,因此我们使用空文本发布活动,并假设当来自bot的响应返回水印值设置时,与bot交互是安全的。在v4中,我们似乎可以监听要返回的“DIRECT\u LINE/CONNECT\u Completed”活动,并假设与bot交互是安全的。
水印主要用于通过调用特定活动中的对话来检索对话历史记录(参考文档)。间接地,它可以用于跟踪活动的进入。一旦网络聊天与Direct Line连接并在网络聊天和您的机器人之间传递消息,它就“安全”了。无需等待
水印