botframework - 需要一种方法来保持 websocket 对 webchat 开放
问题描述
场景:打开机器人尝试一些命令。关闭笔记本电脑。再次打开。Bot 说无法连接。
我认为这是因为 web socket 关闭了。有没有办法让它保持打开状态?
解决方案
此问题与 Web 套接字本身无关,而是与 Direct Line 和网页的一般性质有关。
当你打开一个网页时,它基本上是静态的,假设它是一个每天都运行的普通页面。如果您关闭笔记本电脑并重新打开它,则该页面的任何内容都不会真正改变,因为没有维护“实时”连接。
但是,当您使用网络聊天加载托管机器人的页面时,会通过 Direct Line 打开实时连接。如果您关闭笔记本电脑并重新打开它,则该连接将被切断。没有方向,网络聊天不知道如何(重新)建立连接而不重新加载页面。
查看我在此处发布的答案。它展示了如何设置网络聊天以在用户刷新页面和/或导航离开并返回时与机器人保持对话。它确实依赖于它sessionStorage()
的部分实现,这意味着它只会在当前会话中持续存在。如果用户完全关闭并打开窗口,则会创建一个新连接。
即使在用户关闭窗口时也要保持“会话”,需要更强大的解决方案。
希望有帮助!
推荐阅读
- firebase - Firebase 中的 Function Cloud 是否免费,因为他们要求付费使用功能
- python - 关于python socket UDP
- php - 查询在 phpmyadmin 上工作但不在 php 脚本中
- oracle - Oracle FORMS 12C - 使用 CLIENT_TEXT_IO webutil 从 oracle 表单应用程序生成受密码保护的文件
- postgresql - 在 postgres 中选择 json 值 frob jsonb 列
- python - 如何提高pyqtgraph中大量TextItem的绘制速度
- xamarin - 在 Uno 平台上如何使用 Preferences.Set 命令
- java - Saxon 10 HE - 每个 Java 扩展类是否需要一个命名空间?
- ios - SwiftUI 具有 @Environment(\.presentationMode) 用于消除视图行为不端
- redhat - 安全套接字代理代理侦听器错误