微信開放平臺高效開發除錯方法

zhongl發表於2016-04-05
          <WOS>                      <AE>                 <ML>
 +--------------------+         +------------+        +-----------+
 | WeChat Open Server | <=====> | Aliyun ECS | <====> | My Laptop |
 +--------------------+         +------------+        +-----------+

傳統方式

ML上開發程式碼,打包部署到 AE 上執行,然後與 WOS 聯調。

問題

  1. AE 上開發工具簡陋,除錯效率低;

  2. ML 通常在內網沒有獨立對外 IP,致使 WOS 不能直連。

改進方式

思路是將 AE 作為透傳代理。 實現方式如下:

SSH 遠端轉發

ML> ssh -R `8080:localhost:12306` {AE}

ML 上執行上面的命令連線 AE, 將 AE 上所有 8080 埠的請求轉發到 ML12306 埠上。

這裡會遇到一個坑,SSH預設只會轉發所有到127.0.0.1:8080的資料。顯然這不是我們想要的,然而Aliyun ECS上即便修改GatewayPorts=yes也無法實現轉發來自對外 IP 的資料,故此有了下面的辦法。

NC 本地轉發

AE> nc --sh-exec "nc localhost 8080" -l 80 --keep-open

AE 上執行上述命令, 實現監聽 80 埠並將所有資料透傳到本地的 8080 埠。

Enjoy!

如果你有更好的辦法, 還請不吝賜教:)

相關文章