<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                #### 3.2 IRouter 路由配置抽象類 現在我們來給Zinx實現一個非常簡單基礎的路由功能,目的當然就是為了快速的讓Zinx步入到路由的階段。后續我們會不斷的完善路由功能。 ##### A\) 創建抽象的IRouter層 在`ziface`下創建`irouter.go`文件 zinx/ziface/irouter.go ```go package ziface /* 路由接口, 這里面路由是 使用框架者給該鏈接自定的 處理業務方法 路由里的IRequest 則包含用該鏈接的鏈接信息和該鏈接的請求數據信息 */ type IRouter interface{ PreHandle(request IRequest) //在處理conn業務之前的鉤子方法 Handle(request IRequest) //處理conn業務的方法 PostHandle(request IRequest) //處理conn業務之后的鉤子方法 } ``` 我們知道router實際上的作用就是,服務端應用可以給Zinx框架配置當前鏈接的處理業務方法,之前的Zinx-V0.2我們的Zinx框架處理鏈接請求的方法是固定的,現在是可以自定義,并且有3種接口可以重寫。 `Handle`:是處理當前鏈接的主業務函數 `PreHandle`:如果需要在主業務函數之前有前置業務,可以重寫這個方法 `PostHandle`:如果需要在主業務函數之后又后置業務,可以重寫這個方法 當然每個方法都有一個唯一的形參`IRequest`對象,也就是客戶端請求過來的連接和請求數據,作為我們業務方法的輸入數據。 ##### B\) 實現Router類 在`znet`下創建`router.go`文件 ```go package znet import "zinx/ziface" //實現router時,先嵌入這個基類,然后根據需要對這個基類的方法進行重寫 type BaseRouter struct {} //這里之所以BaseRouter的方法都為空, // 是因為有的Router不希望有PreHandle或PostHandle // 所以Router全部繼承BaseRouter的好處是,不需要實現PreHandle和PostHandle也可以實例化 func (br *BaseRouter)PreHandle(req ziface.IRequest){} func (br *BaseRouter)Handle(req ziface.IRequest){} func (br *BaseRouter)PostHandle(req ziface.IRequest){} ``` 我們當前的Zinx目錄結構應該如下: ```bash . ├── README.md ├── ziface │?? ├── iconnnection.go │?? ├── irequest.go │?? ├── irouter.go │?? └── iserver.go └── znet ├── connection.go ├── request.go ├── router.go ├── server.go └── server_test.go ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看