pinus学习(5)

上节回顾:

  1、channel和客户端之间的信息传递。

    服务器端推送消息给客户端:

      pinus学习(5)_第1张图片

      通过定义onAdd路由,向监听这个路由的客户端推送消息。

    客户端接收消息:

      pinus学习(5)_第2张图片

      监听onAdd路由,以接收服务器推送过来的消息。

    运行效果:

      pinus学习(5)_第3张图片

 

本章学习:

  1、增加filter。

 

开始学习:

  1、增加filter。

  {

    概念:

      pinus学习(5)_第4张图片

      大致意思:

        1、类似一个过滤器,对客户端请求做前置、后置的处理。

        2、before filter做前置处理,如:检查玩家是否已经等了、打印统计日志、请求排队、超时处理等。

        3、after filter做后置处理,如:释放请求上下文的资源、记录请求总耗时等。

      pinus学习(5)_第5张图片

      大致意思:

        1、before filter位于 handler 之前。

        2、after fitler位于handler之后。

 

    filter的代码结构:    

      pinus学习(5)_第6张图片

      参数说明:

        before:

          msg:msg可能是用户请求原始内容,也可能是经过了前面filter链处理后的内容。

          session:在这里是BackendSession,如果在前端服务器上,则是FrontendSession。

          next:回调,进入下一个组件。

        after:          

          err:当前面有错误的错误信息。

          resp:对客户端的响应内容。

          msg:同before的msg。

          session:同before的session。

          next:回调,进入下一个组件。

 

    当前TS版本中的filter:

      pinus学习(5)_第7张图片

      可以看到before多了一个routeRecord参数。

      在代码实现上:

        pinus学习(5)_第8张图片

        只要实现IhandlerFilter接口即可。

 

      接着,只要挂在到app上即可:

        pinus学习(5)_第9张图片

 

    实战:

      定义一个 TimeOutFilter类 的 filter :

        pinus学习(5)_第10张图片

        最后一个参数必须是起名为:next,如果起名是cb的话会报错。

      挂载TimeOutFilter:

        pinus学习(5)_第11张图片

      运行效果:

        pinus学习(5)_第12张图片

  }

 

  

你可能感兴趣的:(pinus学习(5))