基于Golang和WebSocket打造自已的反向代理

本文介绍了如何使用Golang和WebSocket技术构建自己的反向代理服务,以解决本地开发时需要将接口暴露给外部的问题。通过ggrok这个应用,可以避免ngrok的域名限制,提供固定的域名供前端调试,简化调试过程。文章详细阐述了从建立WebSocket连接,到服务端转发HTTP请求,再到客户端转发响应的实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们在开发的时候,有时想要把自已开发的接口暴露给其他开发者或者第三方的服务,方便我们调试和排查问题,那就需要某种机制把我们本地的服务接口暴露到互联网上,本文将要介绍如何通过Golang和WebSocket来实现这一功能

为什么我们需要开发自已的代理服务

目前已经有许多可用的代理服务了,比如ngrok和localtunnel,但ngrok有个缺点就是提供的域名只能用几个小时,然后需要新生成新的域名,如果想要固定域名就要花钱,但我们自已实现的代理可以用一个固定的域名,如果给前端同学来调试的话,不用改来改去,很方便。

ggrok简介

flow

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值