您当前的位置: 首页 > 

如何实现微信公众号本地调试

蔚1 发布时间:2018-11-06 11:51:30 ,浏览量:5

我们开发微信公众号,微信官方规定,公众号请求必须配置已备案的域名,并且只支持80和443端口。以往的做法是每次写完代码发布到映射了域名的服务器上,通过打印日志来调试,这种做法很麻烦,也不利于调试,还有就是利用花生壳这类内网穿透软件,在自己的电脑上啊映射花生壳域名,但是现在大多数内网穿透软件都要收费,而且还比较昂贵,免费的要么不稳定,要么域名经常变。那么,我们还有什么办法可以实现公众号的本地化调试呢?本Chat将告诉你答案!

前言

本文的本章标题是如何实现微信公众号本地化调试,其实本文的主题远不止这些,作者写本文的目的是为了解决一些大型企业或者大型国企对于网络环境的限制,以及我们如何突破这些限制而完成我们的工作。

本文以微信公众号调试为例,告诉大家,如何在内网环境进行微信公众号的调试,包括一些企业对一些端口比如 3389 的禁用,如何绕过这些限制,进而远程控制服务器。

我们开发微信公众号,需要在公众号后台设置一些安全域名,而微信公众号规定:必须有已经备案的域名,并且只支持 80 和 443 端口。

如果我们在内网环境,公众号是无法调用回来的,而一些大型企业往往会有一个称之为安全域的服务器,只有该服务器可以对外访问,并且映射域名,其有一个内网 IP 和访问到我们的内网。而对于前后端架构来说,前端部署在安全域,通过域名来访问,但是当用户在外网访问前端界面时,如果指定到内网的后端接口地址,是访问不通的。

这时,我们就想到需要在安全域部署一个代理服务器转到内网地址。对于一些大型企业尤其是国企,是禁止使用类似 nginx 的反向代理软件的。鉴于这种情况,我们首先想到的就是自己实现一个代理功能。

基本实现原理为

利用 netty 的长连接机制在安全域服务器和内网服务器之间建立一个长连接通道,通过 TCP 协议接受外部的请求,将外部的请求流原样发送给内网服务器,而内网服务器处理完请求后,再将返回的数据发送给安全域的代理应用,代理应用再原样返回给客户端,这样我们就能利用在安全域部署的代理服务器间接地请求到内网地址。

说了这么多废话,那到底是怎样实现的呢,下面我们就来看一看代理服务器的核心代码(全部代码已上传,请自行下载):

1.先创建一个 maven 工程,并添加依赖:
        UTF-8        1.18.0                                            org.springframework.boot                spring-boot-dependencies                2.0.3.RELEASE                pom                import                                                        org.springframework.boot            spring-boot-starter-web                                    org.springframework.bo
关注
打赏
1688896170
查看更多评论

蔚1

暂无认证

  • 5浏览

    0关注

    4645博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0511s