Files
EdgeNode/internal/nodes/http_client.go
GoEdgeLab c19be78e0d v1.4.1
2024-07-27 15:42:50 +08:00

49 lines
1.0 KiB
Go

package nodes
import (
"net/http"
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
)
// HTTPClient HTTP客户端
type HTTPClient struct {
rawClient *http.Client
accessAt int64
isProxyProtocol bool
}
// NewHTTPClient 获取新客户端对象
func NewHTTPClient(rawClient *http.Client, isProxyProtocol bool) *HTTPClient {
return &HTTPClient{
rawClient: rawClient,
accessAt: fasttime.Now().Unix(),
isProxyProtocol: isProxyProtocol,
}
}
// RawClient 获取原始客户端对象
func (this *HTTPClient) RawClient() *http.Client {
return this.rawClient
}
// UpdateAccessTime 更新访问时间
func (this *HTTPClient) UpdateAccessTime() {
this.accessAt = fasttime.Now().Unix()
}
// AccessTime 获取访问时间
func (this *HTTPClient) AccessTime() int64 {
return this.accessAt
}
// IsProxyProtocol 判断是否为PROXY Protocol
func (this *HTTPClient) IsProxyProtocol() bool {
return this.isProxyProtocol
}
// Close 关闭
func (this *HTTPClient) Close() {
this.rawClient.CloseIdleConnections()
}