首页 > 解决方案 > 需要一种方法来保持 websocket 对 webchat 开放

问题描述

场景:打开机器人尝试一些命令。关闭笔记本电脑。再次打开。Bot 说无法连接。

我认为这是因为 web socket 关闭了。有没有办法让它保持打开状态?

标签: botframeworkdirect-line-botframework

解决方案


此问题与 Web 套接字本身无关,而是与 Direct Line 和网页的一般性质有关。

当你打开一个网页时,它基本上是静态的,假设它是一个每天都运行的普通页面。如果您关闭笔记本电脑并重新打开它,则该页面的任何内容都不会真正改变,因为没有维护“实时”连接。

但是,当您使用网络聊天加载托管机器人的页面时,会通过 Direct Line 打开实时连接。如果您关闭笔记本电脑并重新打开它,则该连接将被切断。没有方向,网络聊天不知道如何(重新)建立连接而不重新加载页面。

查看我在此处发布的答案。它展示了如何设置网络聊天以在用户刷新页面和/或导航离开并返回时与机器人保持对话。它确实依赖于它sessionStorage()的部分实现,这意味着它只会在当前会话中持续存在。如果用户完全关闭并打开窗口,则会创建一个新连接。

即使在用户关闭窗口时也要保持“会话”,需要更强大的解决方案。

希望有帮助!


推荐阅读