Node.js 如何阻止消息在bot builder框架中被识别

Node.js 如何阻止消息在bot builder框架中被识别,node.js,botframework,Node.js,Botframework,我的问题与BotBuilder框架的节点版本基本相同 当机器人被添加到一个有多个用户的频道时,它会对每一条消息做出反应,这不是它的目的。我打算通过截取消息来解决这个问题,如果消息中提到了bot,它将被允许正常流动,否则取消操作。但是,我找不到要覆盖的正确函数。有什么建议吗?您可以使用node SDK轻松拦截消息。我给你一个示例代码: server.post('/api/messages', connector.listen()); var bot = new builder.UniversalB

我的问题与BotBuilder框架的节点版本基本相同


当机器人被添加到一个有多个用户的频道时,它会对每一条消息做出反应,这不是它的目的。我打算通过截取消息来解决这个问题,如果消息中提到了bot,它将被允许正常流动,否则取消操作。但是,我找不到要覆盖的正确函数。有什么建议吗?

您可以使用node SDK轻松拦截消息。我给你一个示例代码:

server.post('/api/messages', connector.listen());
var bot = new builder.UniversalBot(connector);
bot.use({
    botbuilder: function (session, next) {
        myMiddleware.doSthWithIncomingMessage(session, next);
    },
    send: function (event, next) {
        myMiddleware.doSthWithOutgoingMessage(event, next);
    }
})

module.exports = {
    doSthWithIncomingMessage: function (session, next) {
        console.log(session.message.text);
        next();
    },
    doSthWithOutgoingMessage: function (event, next) {
        console.log(event.text);
        next();
    }
}

现在,每个入站消息(从用户到bot)都将触发
dostwhithincomingmessage
,每个出站消息(从bot到用户)都将触发
dostwhithwithoutingmessage
。在本例中,机器人只需打印有关每条消息的一些信息,但您可以修改行为以过滤消息并检查提及的内容。

谢谢@gabriel piffaretti。这就是我要找的。不过,对于我应该使用的确切逻辑,我有点挑剔。基本上,我可以使用next继续发送消息,但当前停止消息的方式是使用session.endDialog。这似乎有点奇怪,尤其是在还没有对话的情况下。还有其他建议吗?