mirror of
https://gitee.com/energye/energy.git
synced 2024-12-02 03:37:48 +08:00
修改 内置资源XHR代理请求
This commit is contained in:
parent
00c3bdbbc7
commit
2874edbe53
@ -30,11 +30,7 @@ const (
|
|||||||
var localLoadRes *LocalLoadResource
|
var localLoadRes *LocalLoadResource
|
||||||
|
|
||||||
// LocalLoadResource 初始化时设置
|
// LocalLoadResource 初始化时设置
|
||||||
// 本地或内置加载资源
|
// 本地&内置加载资源
|
||||||
// domain: 自定义域名称,默认energy, 不能为空
|
|
||||||
// scheme: 自定义协议,默认fs, 可选[file: 在本地目录加载, fs: 在内置exe加载]
|
|
||||||
// fileRoot: 资源加载根目录, scheme是file时为本地目录(默认当前程序执行目录), scheme是fs时为资源文件夹名
|
|
||||||
// fs: 内置加载资源对象, scheme是fs时必须填入
|
|
||||||
type LocalLoadResource struct {
|
type LocalLoadResource struct {
|
||||||
LocalLoadConfig
|
LocalLoadConfig
|
||||||
mimeType map[string]string
|
mimeType map[string]string
|
||||||
@ -42,20 +38,15 @@ type LocalLoadResource struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LocalLoadConfig
|
// LocalLoadConfig
|
||||||
// 本地资源加载配置
|
// 本地&内置资源加载配置
|
||||||
// domain: 自定义域名称,默认energy, 不能为空
|
|
||||||
// scheme: 自定义协议,默认fs, 可选[file: 在本地目录加载, fs: 在内置exe加载]
|
|
||||||
// fileRoot: 资源加载根目录, scheme是file时为本地目录(默认当前程序执行目录), scheme是fs时为资源文件夹名
|
|
||||||
// fs: 内置加载资源对象, scheme是fs时必须填入
|
|
||||||
// proxy: 数据请求代理
|
|
||||||
type LocalLoadConfig struct {
|
type LocalLoadConfig struct {
|
||||||
Enable bool // 设置是否启用本地资源缓存到内存, 默认false: 未启用, 提示: 启用该功能, 目前无法加载本地媒体, 媒体资源可http方式加载
|
Enable bool // 设置是否启用本地资源缓存到内存, 默认false: 未启用, 提示: 启用该功能, 目前无法加载本地媒体, 媒体资源可http方式加载
|
||||||
EnableCache bool // 启用缓存,将加载过的资源存储到内存中
|
EnableCache bool // 启用缓存,将加载过的资源存储到内存中
|
||||||
Domain string // 必须设置的域
|
Domain string // 必须设置的域
|
||||||
Scheme LocalCustomerScheme // 自定义协议, file: 本地磁盘目录加载, fs: 内置到执行程序加载
|
Scheme LocalCustomerScheme // 自定义协议, file: 本地磁盘目录加载, fs: 内置到执行程序加载
|
||||||
FileRoot string // 资源根目录, scheme是file时为本地目录(默认当前程序执行目录) scheme是fs时为资源文件夹名
|
FileRoot string // 资源根目录, scheme是file时为本地目录(默认当前程序执行目录) scheme是fs时为资源文件夹名, 默认:[resources or /current/path]
|
||||||
FS *embed.FS // 内置加载资源对象, scheme是fs时必须填入
|
FS *embed.FS // 内置加载资源对象, scheme是fs时必须填入
|
||||||
Proxy IXHRProxy // 数据请求代理, 在浏览器发送xhr请求时可通过该配置转发, 你可可以实现该 IXHRProxy 接口自己实现
|
Proxy IXHRProxy // 数据请求代理, 在浏览器发送xhr请求时可通过该配置转发, 你可自定义实现该 IXHRProxy 接口
|
||||||
Home string // 默认首页: /index.html, /home.html, /other.html, default: /index.html
|
Home string // 默认首页: /index.html, /home.html, /other.html, default: /index.html
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +66,7 @@ type source struct {
|
|||||||
|
|
||||||
// 初始化本地加载配置对象
|
// 初始化本地加载配置对象
|
||||||
func localLoadResourceInit(config LocalLoadConfig) {
|
func localLoadResourceInit(config LocalLoadConfig) {
|
||||||
if localLoadRes != nil {
|
if localLoadRes != nil || config.FS == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
localLoadRes = &LocalLoadResource{
|
localLoadRes = &LocalLoadResource{
|
||||||
@ -95,6 +86,14 @@ func localLoadResourceInit(config LocalLoadConfig) {
|
|||||||
} else if config.Home[0] != '/' {
|
} else if config.Home[0] != '/' {
|
||||||
config.Home = "/" + config.Home
|
config.Home = "/" + config.Home
|
||||||
}
|
}
|
||||||
|
if config.FileRoot == "" {
|
||||||
|
if config.Scheme == LocalCSFS {
|
||||||
|
config.FileRoot = "resources"
|
||||||
|
} else if config.Scheme == LocalCSFile {
|
||||||
|
wd, _ := os.Getwd()
|
||||||
|
config.FileRoot = wd
|
||||||
|
}
|
||||||
|
}
|
||||||
//if config.Proxy != nil {
|
//if config.Proxy != nil {
|
||||||
// if proxy, ok := config.Proxy.(*XHRProxy); ok {
|
// if proxy, ok := config.Proxy.(*XHRProxy); ok {
|
||||||
// if proxy.Scheme == LpsTcp {
|
// if proxy.Scheme == LpsTcp {
|
||||||
|
@ -24,29 +24,31 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// cookies jar
|
||||||
var jar, _ = cookiejar.New(nil)
|
var jar, _ = cookiejar.New(nil)
|
||||||
|
|
||||||
type IXHRProxy interface {
|
type IXHRProxy interface {
|
||||||
Send(request *ICefRequest) (*XHRProxyResponse, error)
|
Send(request *ICefRequest) (*XHRProxyResponse, error) // 发送请求,在浏览器进程同步执行
|
||||||
}
|
}
|
||||||
|
|
||||||
// XHRProxy
|
// XHRProxy
|
||||||
// 数据请求代理
|
// 数据请求代理
|
||||||
type XHRProxy struct {
|
type XHRProxy struct {
|
||||||
Scheme LocalProxyScheme // http/https/tcp default: http
|
Scheme LocalProxyScheme // http/https/tcp default: http
|
||||||
IP string // default localhost
|
IP string // default: localhost
|
||||||
Port int // default 80
|
Port int // default: 80
|
||||||
SSLCert string // /to/path/cert.pem
|
SSLCert string // /to/path/cert.crt, https时, 该参数为空跳过检查
|
||||||
SSLKey string // /to/path/key.pem
|
SSLKey string // /to/path/key.key, https时, 该参数为空跳过检查
|
||||||
|
SSLCARoot string // /to/path/ca.crt, https时, 该参数为空跳过检查
|
||||||
}
|
}
|
||||||
|
|
||||||
// XHRProxyResponse
|
// XHRProxyResponse
|
||||||
|
// 代理响应数据
|
||||||
type XHRProxyResponse struct {
|
type XHRProxyResponse struct {
|
||||||
Data []byte
|
Data []byte // 响应数据
|
||||||
DataSize int
|
DataSize int // 响应数据大小
|
||||||
StatusCode int32
|
StatusCode int32 // 响应状态码
|
||||||
Header map[string][]string
|
Header map[string][]string // 响应头
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *XHRProxy) Send(request *ICefRequest) (*XHRProxyResponse, error) {
|
func (m *XHRProxy) Send(request *ICefRequest) (*XHRProxyResponse, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user