当前位置: 首页 > news >正文

影响网站可用性的因素h5建设网站教程

影响网站可用性的因素,h5建设网站教程,广州番禺网站建设工作室,类似源码之家的网站middleware是目前一些framework比较流行的概念#xff0c;通常一个开发框架需要提供一些可扩展可定制化的功能。所以middleware这种pattern就很实用。 熟悉asp.net core的开发可能第一个想到的就是asp.net core的middleware#xff0c;如下图#xff1a; 当一个http reques…middleware是目前一些framework比较流行的概念通常一个开发框架需要提供一些可扩展可定制化的功能。所以middleware这种pattern就很实用。 熟悉asp.net core的开发可能第一个想到的就是asp.net core的middleware如下图 当一个http request进入到处理的pipeline后先被一个个middleware嵌套的执行完成后在一个个推出。如果我们需要一些定制化功能比如想把每个request要做一个统计记录那开发可以自己写个middleware加入到这个pipeline里这样任何一个request都会从这个middleware通过middleware就可以对request进行统计分析。 我自己整理了一下bot framework的middleware如下图 可以看到当 Adapter 把 TurnContext 创建好后就会开始一个个调用middleware每一个middleware会通过调用next()来触发下一个middleware在middleware pipeline的终点是ActivityHandler的OnTurnAsync()方法。 如果一个middleware想要短路Short circuiting整个turn的处理可以很简单的不调用next来达到这个目的。 下面我们先来看一下IMiddleware接口 public interface IMiddleware {Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken default(CancellationToken)); }一个最简单的middleware如下 public class MyMiddleware : IMiddleware {public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken default){// some logicawait next(cancellationToken).ConfigureAwait(false);// more logic} }有了自己的middleware后我们需要在我们自己的Adapter类的构造函数里把middleware加入到middleware列表。 public class MyHandler : BotFrameworkHttpAdapter {public MyHandler(IConfiguration configuration, ILoggerBotFrameworkHttpAdapter logger): base(configuration, logger){Use(new MyMiddleware());} }Middleware的调用顺序是如何的 我们用代码来说明创建两个middlewareA和B public class MyHandler : BotFrameworkHttpAdapter {public MyHandler(IConfiguration configuration, ILoggerBotFrameworkHttpAdapter logger): base(configuration, logger){Use(new TestAMiddleware(logger));Use(new TestBMiddleware(logger));} }public class TestAMiddleware : IMiddleware {private readonly ILogger _logger;public TestAMiddleware(ILogger logger){_logger logger;}public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken default){_logger.LogInformation(Middleware A begin);await next(cancellationToken).ConfigureAwait(false);_logger.LogInformation(Middleware A end);} }public class TestBMiddleware : IMiddleware {private readonly ILogger _logger;public TestBMiddleware(ILogger logger){_logger logger;}public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken default){_logger.LogInformation(Middleware B begin);await next(cancellationToken).ConfigureAwait(false);_logger.LogInformation(Middleware B end);} }当在处理一个activity时我们可以看到打印出来的log Middleware A beginMiddleware B beginOnMessageActivityAsyncMiddleware B endMiddleware A end现在各位看到这里就清楚了吧先通过Use()加入的middleware将会先被调用到。
http://www.zqtcl.cn/news/727235/

相关文章:

  • 手机网站快速建设网站接入支付宝需要网站备案吗
  • 贵州省住房城乡建设厅网站农业营销型网站源码
  • 网站开发使用哪种语言wordpress 免费主机
  • 山东免费网站制作绿色食品网站模板
  • 做搜狗网站优化点广州网站开发人
  • 网站建设违法行为广东seo快速排名
  • 体育彩票网站开发该做哪些步骤深圳网站建设策划方案
  • 金华网站建设电话做网站用虚拟机还是服务器
  • 整容医院网站建设目的顺企网贵阳网站建设
  • 微网站 htmlseo做的好的网站
  • 免费做网站推荐东平网页设计
  • 所有复刻手表网站wordpress 标题简码
  • 云南建设厅建设网站首页网站建设s
  • 网站用户需求报告网站充值怎么做的
  • 找代码的网站有一个网站是做釆购的是什么网
  • 做外贸最好的网站有哪些php网站开发工程师待遇
  • 做推文封面的网站首页>新闻>正文 网站怎么做
  • 黄页推广引流网站企业网站导航菜单
  • 合肥专门做网站的公司广告代理商是什么意思
  • wordpress显示一个类目seo推广
  • 营销型电子商务网站特点如何申请免费空间和域名
  • 网站建设 主要学是么vk汉化网站谁做的
  • 做英文网站费用多少学校网站开发毕业设计
  • 红动中国设计网站官网网页制作的论文
  • 云阳一平米网站建设西安设计工作室推荐
  • 网站长尾关键词优化网页设计定制代理
  • 海东电子商务网站建设运城市网站建设公司
  • 网站建设得要素电子商务网站建设与维护项目五
  • 网站备案无前置审批文件南宁市建设厅网站
  • 百度网站体检手机网页小游戏