Bot 连接器 - 直线 API 交叉对话?

Bot Connector - Direct Line API cross conversation?

我写了一个简短的小 JavaScript 聊天以使用直线 API。为了保证我的 App Secret 的安全,js 对我的服务器进行 ajax 调用,我在服务器端调用 API 来生成令牌并将其传递回 js。当用户提交消息时,js 会创建一个 post 来开始对话(如果我还没有 conversationID),然后 post 发送消息,然后获取响应(s).

幸运的是,当我开始这个时,我在谷歌上搜索了一些内容并浏览了一些 post 关于在 posting 时在消息对象中包含 "from" 的值或者它只是重新开始post。不过现在一切正常,没问题。

然后我注意到似乎有些奇怪。如果我打开一个浏览器并开始聊天,它会从另一个浏览器停止的地方开始聊天。

我很快意识到这是因为我在js中硬编码了一个"from"值。但这看起来仍然很奇怪……2 个不同的令牌、2 个不同的会话 ID、2 个不同的浏览器和 1 个会话。对话是否真的由消息中的发件人字段链接?

如果是这样,拥有 conversationID 有什么意义?他们是否以某种方式将 IP and/or MAC 地址与来自 属性?

的地址结合使用

我仍在本地主机上工作,所以我还没有测试它来自 2 个不同的 IP。

我知道可以通过让 js 为 "from" 生成一个随机值来将对话限制在 js 的生命周期内来轻松解决这个问题,但这看起来仍然很奇怪。有充分的理由吗还是错误?

UPDATE 请参阅 github 问题以获得答案: https://github.com/Microsoft/BotBuilder/issues/1307#issuecomment-249187807

您应该在客户端加载时生成一个随机 ID。 (或者,您可以在您的应用程序中使用现有的用户 ID,例如设备 ID。)自动分配行为一直是混淆的根源,并且不会存在于下一版本的 Direct Line 中。 (参见 GitHub Discussion