fix(api): market/combined_streams: Get Proxy form Environment (#879)

* fix(api): market/combined_streams: Get Proxy form Environment
issues:
 批量订阅流失败: 组合流WebSocket连接失败: dial tcp xxxxxx:443: i/o timeout
Make environment variables effective for
dialer.Dial("wss://fstream.binance.com/stream", nil):
export HTTPS_PROXY=http://ip:port
export HTTP_PROXY=http://ip:port
Signed-off-by: MarsDoge <mars@dogexorg.com>
* docs(WebSocket): add proxy usage guidance for combined streams (#475)
Signed-off-by: MarsDoge <mars@dogexorg.com>
---------
Signed-off-by: MarsDoge <mars@dogexorg.com>
This commit is contained in:
Dongyan Qian
2025-11-13 20:29:51 +08:00
committed by tangmengqiu
parent a2da48eb57
commit 3451d7bfac
3 changed files with 38 additions and 0 deletions
+18
View File
@@ -1285,6 +1285,24 @@ sudo apt-get install libta-lib0-dev
- If API fails, system uses default mainstream coins (BTC, ETH, etc.)
- ~~Check API URL and auth parameter in config.json~~ *Check configuration in web interface*
### 6. WebSocket can't connect when using an HTTP/HTTPS proxy
**Solution**:
- Export standard proxy environment variables *before* starting the backend:
```bash
export HTTPS_PROXY=http://<proxy-host>:<port>
export HTTP_PROXY=http://<proxy-host>:<port>
# If your proxy requires credentials
export HTTPS_PROXY=http://user:pass@<proxy-host>:<port>
export HTTP_PROXY=http://user:pass@<proxy-host>:<port>
# Start NOFX normally
./start.sh
```
- **Docker Compose**: put the variables in `.env` or the service's `environment` block.
- NOFX relies on Go's `http.ProxyFromEnvironment`, so every outbound request—including the Binance combined streams WebSocket—follows these proxy settings automatically when the variables are present.
---
## 📈 Performance Optimization Tips
+18
View File
@@ -1302,6 +1302,24 @@ sudo apt-get install libta-lib0-dev
- 如果API失败,系统会使用默认主流币种(BTC、ETH等)
- ~~检查config.json中的API URL和auth参数~~ *检查Web界面中的配置*
### 6. 代理环境下 WebSocket 无法连接
**解决**:
- 启动后端前导出标准代理环境变量:
```bash
export HTTPS_PROXY=http://<代理主机>:<端口>
export HTTP_PROXY=http://<代理主机>:<端口>
# 如果代理需要账号密码
export HTTPS_PROXY=http://用户名:密码@<代理主机>:<端口>
export HTTP_PROXY=http://用户名:密码@<代理主机>:<端口>
# 正常启动 NOFX
./start.sh
```
- **Docker Compose**:将变量写到 `.env` 或 `docker-compose.yml` 的 `environment` 中。
- NOFX 使用 Go 的 `http.ProxyFromEnvironment`,只要环境变量设置正确,包括 Binance 合并流在内的所有出站请求都会自动走代理。
---
## 📈 性能优化建议
+2
View File
@@ -7,6 +7,7 @@ import (
"strings"
"sync"
"time"
"net/http"
"github.com/gorilla/websocket"
)
@@ -32,6 +33,7 @@ func NewCombinedStreamsClient(batchSize int) *CombinedStreamsClient {
func (c *CombinedStreamsClient) Connect() error {
dialer := websocket.Dialer{
HandshakeTimeout: 10 * time.Second,
Proxy : http.ProxyFromEnvironment,
}
// 组合流使用不同的端点