DirectLineJS 接收机器人回复的副本

2024-01-09

我使用 DirectLineJS 通过网站进行自定义网络聊天进行通信。我使用的是 Microsoft github 发布的格式https://github.com/Microsoft/BotFramework-DirectLineJS https://github.com/Microsoft/BotFramework-DirectLineJS

我如何实现它是

var directLine;
    directLine= new DirectLine.DirectLine({
        secret: "My_DirectLine_Secret",
    });

    function sendReceiveActivity(msg) {
        document.getElementById("inputtext").value = "";
        conversation.innerHTML = conversation.innerHTML + "ME - " + msg + "<br/><br/>";

        directLine.postActivity({
            from: { id: 'myUserId', name: 'myUserName' }, // required (from.name is optional)
            type: 'message',
            text: msg
        }).subscribe(
            id => console.log("Posted activity, assigned ID ", id),
            error => console.log("Error posting activity", error)
            );

        directLine.activity$
            .filter(activity => activity.type === 'message' && activity.from.id === 'mybot')
            .subscribe(
            message => console.log(message)"
            );
    }

每当我开始阅读消息时,每条消息的副本数量都会增加一份,因此我的网站将经历以下循环:

我 - 向机器人发送消息

机器人回复 - 消息 1

我 - 向机器人发送一些消息

机器人回复 - 消息 2

机器人回复 - 消息 2

我——一些消息

机器人回复 - 消息 3

机器人回复 - 消息 3

机器人回复 - 消息 3

等等

对于重复的消息,我从机器人收到的响应 ID 也不会增加,因此假设消息 3 的 ID = 00005,每个 BotReply - 消息 3 的 ID = 00005,但消息 4 的 ID = 00007

在我的实际机器人中,我使用以下方式发送消息await context.PostAsync("Some mesage");没有别的

我该如何减少消息回复数量,只收到一条消息?

该文档指出“Direct Line 将有助于向您的客户发送每个已发送活动的副本,因此常见模式是过滤来自以下来源的传入消息:”即使我将消息过滤为来自“mybot”


如果不查看其余代码,很难准确确定发生了什么。但是,每次发送消息时,您似乎都会订阅接收消息。请尝试更改您的代码,以便您只订阅一次:

var directLine = new DirectLine.DirectLine({
        secret: "My_DirectLine_Secret",
    });

directLine.activity$
          .filter(activity => activity.type === 'message' && activity.from.id === 'mybot')
          .subscribe(
            message => console.log(message)
            );

    function sendReceiveActivity(msg) {
        document.getElementById("inputtext").value = "";
        conversation.innerHTML = conversation.innerHTML + "ME - " + msg + "<br/><br/>";

        directLine.postActivity({
            from: { id: 'myUserId', name: 'myUserName' }, // required (from.name is optional)
            type: 'message',
            text: msg
        }).subscribe(
            id => console.log("Posted activity, assigned ID ", id),
            error => console.log("Error posting activity", error)
            );
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DirectLineJS 接收机器人回复的副本 的相关文章

  • 资产管道中的路由助手

    使用 Rails 3 1 0 rc4 我尝试访问 javascript 文件中的路由助手 本例中为 event js erb 但似乎此时它们尚未加载 当请求合并的 assets application js 文件时 我得到 throw Er
  • 重命名从 HTML5 画布创建的图像

    我制作了一个简单的画布并将其另存为图像 我在这段代码的帮助下做到了这一点 var canvas document getElementById mycanvas var img canvas toDataURL image png 并弹出创
  • 如何检测我正在 eval() 调用中?

    是否存在字符串s这样 new Function s and eval s 表现不同 我正在尝试 检测 字符串的评估方式 检查是否有arguments目的 如果它存在 那么您就在该函数中 如果没有 那就已经是evaled 请注意 您必须将支票
  • 如何从外部域设置 iframe 内部的样式?

    我有一个网站 其中嵌入了来自 3 个不同域的 3 个 iframe 每个 iframe 都位于单独的页面上 将样式表应用于所有 3 个 iframe 的最佳方法是什么 谢谢你 这可以在某些网站上完成 但由于 同源政策 而并非全部 Twitt
  • 为什么使用 MongoDB 的 $push 向数组添加新对象时会添加带有 ObjectID 的 _id ?

    我正在使用 Node js 和 Mongoose 玩家和锦标赛变量是之前获取的 Mongoose 对象 我想将一个新的tournamentSession对象 不是Mongoose对象 添加到玩家对象的tournamentSessions字段
  • fetch API 不通过 post 发送数据

    我在使用 Fetch API 通过 post 发送数据时遇到问题 服务器只收到一个空的 JSON 有人能帮我吗 基本上 我正在更新状态数据并将其发送到 API 提交的数据 请求 submitedData async event gt eve
  • 如何在回调函数之外使用 FB.api(JS SDK) 响应?

    我在登录甚至调用 api 方面没有任何问题 我只是在 api 回调之外获取响应时遇到问题 我知道它是异步运行的 所以我想将它放在一个返回响应的函数中 这是我的想法 What I would like to be able to do fun
  • Jquery - (重新)连接动态生成的元素

    很多时候 我的元素与附加功能挂钩 例如 myfav autocomplete myfav datepicker myfav click somefunction 但是 当通过某些代码动态生成此类的更多实例时 新的 myfav 已经死了 需要
  • req.body 为空 Express js

    我花了几个小时试图找出为什么 req body 是空的 我在 stackoverflow 上到处查看并尝试了所有方法 但没有运气 Express js POST req body 空 https stackoverflow com ques
  • 使用 JavaScript 设置文本区域样式

    我对 JavaScript 完全陌生 想修改表单的文本区域 由外部脚本生成 如下所示 1 开始时的文本区域 标记为 您的消息 颜色为 rgb 136 136 136 2 焦点上的文本区域 标签已删除 颜色设置为 rgb 0 0 0 3 文本
  • 是否有管理 __utma、__utmz 等 cookie 的标准?

    无论我登录 Facebook 还是 Twitter 我都会受到以下名称的 cookie 轰炸 utma utmb utmc utmv 它们的功能是什么 是否有一个标准来管理这些在服务器端的使用方式 这些 cookie 通常与谷歌分析 htt
  • 无法设置未定义的属性“显示”

    我正在编写脚本来隐藏 显示菜单 但遇到了一些麻烦 function displayMenu var classMenu event target className classMenu Menu document getElementsBy
  • 在javascript/jQuery中设置Java的数据结构

    有没有办法在javascript中像java一样创建集合数据结构 唯一集合 对于一组字符串 我只使用值为 true 的对象 var obj obj foo true obj bar true if obj foo foo in set 这基
  • underscore.js 中断路器的重要性是什么? [复制]

    这个问题在这里已经有答案了 In 下划线 js http underscorejs org docs underscore html 有这样的代码 if iterator call context obj keys i keys i obj
  • 获取顶部框架的 URL

    在 Facebook 应用程序中 我需要检查顶部框架 主窗口 URL 是什么 并相应地显示内容 我尝试使用以下内容 if top location toString toLowerCase indexOf facebook com lt 0
  • 如何并排展开和折叠三个div?

    document ready function toggle click function if this data name show sidebar animate width 10 hide map animate width 89
  • 利用源映射的堆栈跟踪

    概述 浏览器控制台中的堆栈跟踪输出与调用 Error stack 时返回的跟踪不同 控制台堆栈跟踪似乎考虑了源映射 而 Error stack 堆栈跟踪则没有 控制台输出这是输出到控制台的默认堆栈跟踪 Uncaught TypeError
  • CSS3 Marquee / Ticker 动画最后没有空格

    我正在用 2 个项目集合构建字幕 旋转木马效果 循环两者item collection跨越translateX并不难 这里是小提琴 http jsfiddle net k1k3h2p0 但我不喜欢每个循环末尾的空白区域 知道两个集合的宽度可
  • 按 Chartjs 条形图的键对对象进行分组

    我正在尝试使用 Chart js 创建条形图 我在尝试根据每个用户的状态创建分组条形图时陷入困境 这是数据 statusId 0 firstName Joe status appealed count 1 statusId 0 firstN
  • 如何将react-native与php一起使用并获取返回数据始终为空

    我的回报始终为空 我似乎无法让它发挥作用 我如何将react native与php一起使用并获取json 任何人都可以帮忙吗 PHP myArray array myArray lat POST lat myArray lng POST l

随机推荐

  • 如何在 Log 中模拟方法 e

    这里 Utils java 是我要测试的类 以下是在 UtilsTest 类中调用的方法 即使我嘲笑 Log e 方法 如下所示 Before public void setUp when Log e any String class an
  • 从 np.fft 计算幅度

    我似乎使用 np fft fft 计算原始波的不正确振幅 显示了 fft 的图 您可以看到显示的幅度约为 3 和 1 5 但如果您查看代码 我将使用幅度 7 和 3 来生成信号 该图应该有两个尖峰 在 x 13 处达到 y 3 在 x 15
  • 浏览器历史记录管理

    我正在尝试找到一种干净的解决方案 以最有效的方式处理浏览器历史记录 我正在使用 GWT 但这个问题确实比这更普遍 这是我的情况 我认为这是相当标准的 我有一个 Web 应用程序 它有几个不同的页面 位置 位置 无论你想怎么称呼它 我会显示这
  • SIP ACK 对话框为空

    我正在使用 JAIN SIP 在 java 中创建 SIP 客户端 我已经成功注册并发送 INVITE 但是当将 ACK 发送回服务器时 我收到错误消息 Cannot Create ACK no remote Target 我检查了 Dia
  • 断言失败:运行时反射宇宙中的不安全符号 DeveloperApi

    我正在 Java 8 程序中运行以下几行 SparkConf sparkConf new SparkConf sparkConf setAppName testJob sparkConf setMaster spark blahblah 7
  • 仅使用一次计时器

    我只想在主窗体初始化后 1 秒使用计时器一次 我以为下面会有一个消息框只显示一次 Hello World 但实际上每秒都会有一个新消息框显示 Hello World 为什么这样 我已经把t Stop 在勾选事件中 另外 我是否需要以某种方式
  • 任务并行库 - 如何立即返回但有一个并行步骤

    我有以下工作流程 需要以非阻塞并行处理方式进行 我想要方法DoStuff 立即返回 所以我正在使用任务并行库 DoStuff Do some setup Parse an Excel file then for each row Fill
  • 随后启动两个 WebClient.UploadStringAsync 调用

    当调用 WebClient UploadStringAsync 两次 而不等待 WebClient UploadStringCompleted 事件时 将引发以下异常 WebClient 不支持并发 I O 操作 显然 这是不支持的 想要启
  • Silverlight 4 BitmapImage - bmp 文件支持

    MSDN 提到了对 PNG 和 JPG 的支持 但许多人正在尝试 setSource file bmp 并抱怨 灾难性失败 有人可以澄清一下 是否支持 bmp 吗 如果没有 在 silverlight 中显示 bmp 的最佳方式是什么 Si
  • 如何在javatechig示例中添加Recycler项目SetOnClickListener

    我正在尝试添加onclick监听器为了这RecyclerView但我尝试了一切 但它不起作用 饲料项目 public class FeedItem private String title private String thumbnail
  • Chrome 中的 Mailto 链接会打开新选项卡

    您好 我的页面上有一个 mailto 链接 该链接在其他浏览器中运行良好 在 Chrome 中 它会打开一个新选项卡 其中 URL 为 mailto 链接 有什么办法可以抑制Web开发人员的行为吗 从我读到的内容来看 这似乎是 chrome
  • 在两个单独的 Angular 应用程序之间进行更改时,AngularJS e2e 测试会挂起

    我有一个令人沮丧的问题 我想为复杂的角度应用程序编写端到端测试 问题是登录屏幕是一个单独的应用程序 最初的想法是 它将根据登录凭据进行分支 以分离我们生态系统中的其他角度应用程序 它就像一个魅力 对于测试来说 这是一场噩梦 测试按预期工作
  • Visual Studio 2015 - ASP.Net 应用程序只有重新启动 Visual Studio 后才会启动

    有时 当我尝试启动 ASP Net 应用程序 调试 时 应用程序将无法启动 Visual Studio 看起来应用程序正在运行 状态栏的颜色变为橙色 浏览器打开并 永远 加载 IIS Express 正在运行 并且该站点显示在 IIS 尝试
  • django 使用动态列名称进行注释

    我在 django 应用程序中有一个模型 其结构如下 class items models Model name models CharField max length 50 location models CharField max le
  • 如何在不使用 10 次方表示的情况下将双精度数转换为字符串 (E-05)

    如何在不使用 10 次方表示的情况下将双精度数转换为字符串 E 05 double value 0 000099999999833333343 string text value ToString Console WriteLine tex
  • 为什么在 for 循环中检查 HashMap 是否具有特定值需要很长时间才能执行?

    我正在研究 Double DES 上的中间相遇攻击 我已经实现了 DES 加密 解密并完成了加密 现在我想对 Double DES 执行 MITM 攻击以找到密钥 我尝试实现此目的的方法是在 for 循环中将中间密码存储为 HashMap
  • 正则表达式停止搜索特定字符串

    我试图在重复的特定模式之后获取任何字符 但我需要在特定字符串处停止搜索 例如 anything anything anything pattern string anything anything anything pattern anot
  • 从 Swift 中的字符串中删除“\”(反斜杠)

    我有以下代码 let refreshedToken FIRInstanceID instanceID token var encriptat3 String ope sql para UPDATE xw usuarios SET IDFIR
  • 删除特殊字符VBA Excel

    我正在使用 VBA 阅读一些标题 然后将该信息复制到 PowerPoint 演示文稿中 问题是标题有特殊字符 但我正在处理的图像文件没有特殊字符 例如 标题构成将 JPEG 加载到图片容器的路径的一部分P k jpg 但标题叫p k 我希望
  • DirectLineJS 接收机器人回复的副本

    我使用 DirectLineJS 通过网站进行自定义网络聊天进行通信 我使用的是 Microsoft github 发布的格式https github com Microsoft BotFramework DirectLineJS http