<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 6.1 創建消息管理模塊 ##### A\) 創建消息管理模塊抽象類 在`zinx/ziface`下創建`imsghandler.go`文件。 ```go package ziface /* 消息管理抽象層 */ type IMsgHandle interface{ DoMsgHandler(request IRequest) //馬上以非阻塞方式處理消息 AddRouter(msgId uint32, router IRouter) //為消息添加具體的處理邏輯 } ``` 這里面有兩個方法,`AddRouter()`就是添加一個msgId和一個路由關系到Apis中,那么`DoMsgHandler()`則是調用Router中具體`Handle()`等方法的接口。 ##### B\) 實現消息管理模塊 在`zinx/znet`下創建`msghandler.go`文件。 ```go package znet import ( "fmt" "strconv" "zinx/ziface" ) type MsgHandle struct{ Apis map[uint32] ziface.IRouter //存放每個MsgId 所對應的處理方法的map屬性 } func NewMsgHandle() *MsgHandle { return &MsgHandle { Apis:make(map[uint32]ziface.IRouter), } } //馬上以非阻塞方式處理消息 func (mh *MsgHandle) DoMsgHandler(request ziface.IRequest) { handler, ok := mh.Apis[request.GetMsgID()] if !ok { fmt.Println("api msgId = ", request.GetMsgID(), " is not FOUND!") return } //執行對應處理方法 handler.PreHandle(request) handler.Handle(request) handler.PostHandle(request) } //為消息添加具體的處理邏輯 func (mh *MsgHandle) AddRouter(msgId uint32, router ziface.IRouter) { //1 判斷當前msg綁定的API處理方法是否已經存在 if _, ok := mh.Apis[msgId]; ok { panic("repeated api , msgId = " + strconv.Itoa(int(msgId))) } //2 添加msg與api的綁定關系 mh.Apis[msgId] = router fmt.Println("Add api msgId = ", msgId) } ```
                  <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>

                              哎呀哎呀视频在线观看