问题
在使用Codex过程中,每次打开软件发起对话都要重新连接5次才能开启对话,中间会卡一段时间,非常浪费时间。
分析
Codex 在启动连接时,使用的是 WebSocket协议。WebSocket 的作用是建立一条实时通信通道,如果连接正常,前端和服务器之间可以保持持续通信,响应会更及时,体验也会更流畅。
但问题在于,并不是所有代理环境都能很好地处理 WebSocket。特别是在 使用 Clash等代理工具时,经常会出现一种情况:普通的 HTTP / HTTPS 请求可以正常通过代理,但 WebSocket 连接却无法稳定建立。当 WebSocket 多次连接失败后,Codex 最终会放弃这条连接方式,转而回退到普通的 HTTP 请求。由于 HTTP / HTTPS 在你的代理环境里是可以正常工作的,所以回退之后,Codex 又突然恢复正常了。
解决方法
以MacOs为例
先打开.codex目录
open/Users/xxx/.codex
新建.env文件用于配置环境变量,编写脚本如下:
HTTP_PROXY="http://127.0.0.1:7897"HTTPS_PROXY="http://127.0.0.1:7897"NO_PROXY="localhost,127.0.0.1,::1"注意最后的那个端口要和你的代理软件上的端口一致。
最后再重启软件重新发起对话:
可以看出,已经没有重新连接的过程了。