微信开放平台高效开发调试方法

1753 查看

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

如果你有更好的办法, 还请不吝赐教:)