如何使用中间件拦截botbuilder sdk v4中的消息?

时间:2019-01-16 21:31:40

标签: node.js botframework bots microsoft-cognitive

我有一个Bot在botbuilder V3上运行,我在其中使用解释为here的中间件来拦截消息。

bot.use({
    botbuilder: function (session, next) {
        myMiddleware.logIncomingMessage(session, next);
    },
    send: function (event, next) {
        myMiddleware.logOutgoingMessage(event, next);
    }
})

我们计划在sdk v4上进行迁移,以便在sdk v4中寻找类似的功能。有吗?

我在此page.上找不到示例

1 个答案:

答案 0 :(得分:1)

BotAdapter基类公开了use方法来注册中间件。因此,在您的启动逻辑中,您将创建BotAdapter(通常为BotFrameworkAdapter)的特定实现,然后向其中添加中间件。像这样:

const botAdapter = new BotFrameworkAdapter( { /* credential stuff here*/ });

// Simple handler based
botAdapter.use(async (turnContext, next) => {
    // pre logic

    await next();

    // post logic
});

// Or class based
botAdapter.use(new MyMiddleware());