Commit Graph

6 Commits (95623f3802e0d0f6b7696c33c03ad76ab58dd833)

Author SHA1 Message Date
black1552 95623f3802 refactor(gateway): 重构反向代理实现以支持 WebSocket 和 HTTP 请求
- 添加 gclient 和 gstr 依赖包用于 HTTP 客户端操作
- 实现新的 BuildRequest 函数,使用 gclient 处理普通 HTTP 请求
- 分离 WebSocket 请求处理到独立的 proxyWebSocket 函数
- 移除旧的 hasProtocol 函数和相关逻辑
- 添加完整的请求头和响应头复制机制
- 实现响应状态码和响应体的正确传递
- 简化 WebSocket 代理逻辑,使用标准反向代理处理
2026-03-06 17:00:37 +08:00
black1552 45262d8f88 fix(gateway): 修复代理响应头传递和JSON写入问题
- 添加 ModifyResponse 函数以正确传递原始响应头
- 实现响应头从代理服务器到客户端的完整传递
- 修复 WebSocket 升级处理中的响应写入逻辑
- 确保 JSON 数据通过 RawWriter 正确写入响应
2026-03-06 13:54:20 +08:00
black1552 f958579981 fix(gateway): 解决 WebSocket 升级和 HTTP 请求处理问题
- 使用 RawWriter() 获取原始的 http.ResponseWriter,避免 gf 框架的封装影响
- 确保代理能够正确处理 WebSocket 连接升级
- 修复了因框架封装导致的响应写入问题
2026-03-06 11:35:25 +08:00
black1552 737fd041a0 feat(gateway): 添加协议自动检测和补全功能
- 实现 hasProtocol 函数检查字符串是否包含协议前缀
- 支持 http、https、ws、wss 协议检测
- 自动为没有协议的主机地址添加相应协议前缀
- 根据请求类型判断协议:WebSocket 使用 ws,HTTP 使用 http
- 优化反向代理请求构建逻辑
2026-03-06 11:14:10 +08:00
black1552 969322a912 refactor(server): 重构网关请求代理实现
- 使用标准库 httputil.NewSingleHostReverseProxy 替代自定义 HTTP 客户端
- 移除 gclient、gcache 和相关依赖包导入
- 添加自定义 Director 函数处理目标 URL 设置
- 实现错误处理机制和 Bad Gateway 响应
- 简化 WebSocket 连接支持逻辑
- 优化请求头和响应头处理流程
2026-03-06 10:52:26 +08:00
black1552 f9fae10c76 feat(server): 添加网关代理功能
- 实现了 HTTP 请求转发功能,支持请求头和响应头的完整复制
- 添加了目标 URL 构建逻辑,处理路径和查询参数的正确拼接
- 集成了响应体读取和状态码设置功能
- 实现了 WebSocket 连接的反向代理处理
- 添加了缓存机制用于临时存储主机信息
- 集成了日志记录功能用于错误跟踪和调试
2026-03-06 10:31:06 +08:00