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

                # 開發者工具 SD在未來版本中將提供各種各樣的實用的開發者工具。 開發者工具將以命令行的方式集成在SD發布包中使用。 ![](https://box.kancloud.cn/762dea74dc92a7c4003d43d69e7e2c95_998x610.png) 接下來我將分別介紹這些工具包的使用 ## Channel channel命令需要指定一個uid作為源,命令啟動后將會和服務器建立一個信息通道,該通道會自動復制uid客戶端與服務器信息交互中產生的所有流量,并經過篩選顯示到控制面板中。 ``` php start_swoole_server.php channel -u 1 ``` -u后面是綁定的uid,這是必不可缺的參數。 通道將會監聽該uid與服務器交互的流量,并以PHP數組形式顯示到控制面板中。 ![](https://box.kancloud.cn/455e6e6e9aa8b353c03a4b747fc8a091_448x661.png) > $SYS_CHANNEL/1/recv 代表是服務器接收到客戶端的信息,相反的$SYS_CHANNEL/1/send 代表是服務器發送給客戶端的信息 可以看到這是基于SD消息訂閱實現的功能。SD的訂閱發布系統功能強大性能卓越,該命令可以安全的調試線上服務器,而不用擔心性能。 -u 1 后面可以繼續接上多個參數,這些參數用于過濾,只有符合參數條件的消息才會被打印到控制臺上。 ``` php start_swoole_server.php channel -u 1 cmd:401 ``` 每個參數的格式都是$key:$value型,在消息數組結構中只要符合這種對應關系就會被選中,多個參數是或的關系。 有了這個工具開發者可以指定查看客戶端數據流信息進行錯誤定位,無需再苦苦和客戶端聯調,特別是線上環境。 ## Proto Proto工具用于生成私有協議,如果你不滿足protobuf或者其他協議類型,或者覺得直接使用json或者msgpack開發上不便捷,或者其他特殊原因。那么Proto工具是個最棒的選擇。 目前Proto工具可以生成JS和PHP的協議,并且完美的與SD框架結合,讓你無腦編寫業務代碼,爽到不要。 首先我們有個協議文檔,這個文檔是基于XML的。我們所有協議的定義都通過這個XML定義。 * Controller模塊 ![](https://box.kancloud.cn/8a1d96f5018fe3a68dfdfa70a30f0fd0_875x109.png) 和SD的Controller一摸一樣,就是控制器,在這里定義控制器和方法,cmd是作為協議號。 * Struct結構體模塊 ![](https://box.kancloud.cn/c96d5619ae3f2988343bd7aeb68684ca_465x310.png) 定義所有的結構體。 結構體可以繼續當type使用,甚至可以繼承。 ![](https://box.kancloud.cn/23ee343a8ba488c66c0cb09b7b9a4c9e_621x95.png) * Marco模塊 ![](https://box.kancloud.cn/b98dcdfafcd64f2fcb43c23e62e07a55_785x43.png) 用于定義常量 整個協議都是基于上面3大模塊構建的。 編寫好XML后我們通過下面的命令就可以生成協議代碼了,協議生成器擁有一個模板代碼,開發者通過修改模板代碼可以生成自己自定義的協議,生成器也是通過PHP寫的,更高級的需求可以直接修改生成器。 我們來看看生成的代碼吧。 ![](https://box.kancloud.cn/cf2619dfaf37f007ba5aa38cbb8d4044_243x214.png) PHP包含3個文件夾ic/rpc/struct,JS就簡單了只有一個proto.js。 我們寫SD控制器時直接implements對應的接口就能自動生成對應的控制器方法了,相當的簡單。 ![](https://box.kancloud.cn/8535015fa6e4606c5cd81fabcad1e383_209x170.png) ![](https://box.kancloud.cn/3936e408038e4ca191d5390fd53fec3b_525x590.png) 所有用到的結構體都會被生成在struct目錄中 ![](https://box.kancloud.cn/73f58c8f5b2f318cd82cb2c40b7e65b5_249x424.png) rpc目錄對應的是協議 ![](https://box.kancloud.cn/d4c3d71dea293040c10c80fa5c0e220c_260x440.png) ## Model模塊 Model模塊是用于調試Model的,它可以直接訪問Model對象通過控制臺調試。 ``` php start_swoole_server.php model ``` 下面就是過程引導: ![](https://box.kancloud.cn/82dadfb78486e12eccde831b55d58bd8_341x306.png) ![](https://box.kancloud.cn/e528081f8c90d3f87553c1e944be707f_454x437.png) 首先會先讓你輸入model名稱,然后會顯示出所有的方法,選擇方法后輸入對應的變量。 > protected,private,public的方法都會被顯示出來,都可以被調用,但是protected,private方法中如果存在協程切換會有bug出現。 如果遇到參數是個復雜對象無法通過控制臺輸入怎么辦? 我們可以通過調用對應Model將結果保存成臨時變量使用。 ![](https://box.kancloud.cn/11415d3db29c542a4fdf8d15365ffec9_442x258.png) ![](https://box.kancloud.cn/a7c0a681e7192192b36527669b5c814a_637x382.png) 通過此工具開發過程中測試Model是不是變得很輕松了呢。
                  <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>

                              哎呀哎呀视频在线观看