当我们在开发的时候,有时想要把自已开发的接口暴露给其他开发者或者第三方的服务,方便我们调试和排查问题,那就需要某种机制把我们本地的服务接口暴露到互联网上,本文将要介绍如何通过Golang和WebSocket来实现这一功能
为什么我们需要开发自已的代理服务
目前已经有许多可用的代理服务了,比如ngrok和localtunnel,但ngrok有个缺点就是提供的域名只能用几个小时,然后需要新生成新的域名,如果想要固定域名就要花钱,但我们自已实现的代理可以用一个固定的域名,如果给前端同学来调试的话,不用改来改去,很方便。
ggrok简介
ggrok是通过Golang和WebSocket实现的代理应用,你可以通过Github仓库上的Heroku按钮非常方便的部署,然后就可以拥有一个固定的域名了。
如何实现
Step1 在服务器和客户端建立WebSocket连接
服务端基于gorilla,监听WebSocket连接
func (s *Server) Register(w http.ResponseWriter, r *http.Request) {
c, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print