升级异常机制

This commit is contained in:
Star 2025-12-12 21:45:50 +08:00
parent 00ac83205d
commit a07bbb7412
2 changed files with 41 additions and 20 deletions

20
go.mod
View File

@ -5,16 +5,16 @@ go 1.24.0
toolchain go1.24.3
require (
apigo.cc/gojs v0.0.28
apigo.cc/gojs/console v0.0.3
apigo.cc/gojs/file v0.0.6
apigo.cc/gojs/util v0.0.15
apigo.cc/gojs v0.0.32
apigo.cc/gojs/console v0.0.4
apigo.cc/gojs/file v0.0.8
apigo.cc/gojs/util v0.0.17
github.com/go-rod/rod v0.116.2
github.com/gorilla/websocket v1.5.3
github.com/ssgo/config v1.7.10
github.com/ssgo/httpclient v1.7.8
github.com/ssgo/log v1.7.9
github.com/ssgo/s v1.7.24
github.com/ssgo/log v1.7.10
github.com/ssgo/s v1.7.25
github.com/ssgo/u v1.7.23
)
@ -44,9 +44,9 @@ require (
github.com/ysmood/gson v0.7.3 // indirect
github.com/ysmood/leakless v0.9.0 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
golang.org/x/crypto v0.44.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/crypto v0.46.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/text v0.32.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

41
http.go
View File

@ -128,7 +128,10 @@ func setConfig(cli *Http, opt *gojs.Obj) {
func makeResult(r *httpclient.Result, vm *goja.Runtime) goja.Value {
if r.Error != nil {
panic(vm.NewGoError(r.Error))
// panic(vm.NewGoError(r.Error))
vm.SetData("_lastError", r.Error)
gojs.GetLogger(vm).Error(r.Error.Error())
return nil
}
headers := map[string]string{}
for k, v := range r.Response.Header {
@ -368,7 +371,10 @@ func (hc *Http) Connect(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
}
return vm.ToValue(gojs.MakeMap(ws))
} else {
panic(vm.NewGoError(err))
// panic(vm.NewGoError(err))
vm.SetData("_lastError", err)
gojs.GetLogger(vm).Error(err.Error())
return nil
}
}
@ -498,7 +504,10 @@ func (ws *WS) PingCount(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
func (ws *WS) Read(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
typ, data, err := readWSMessage(ws.conn)
if err != nil {
panic(vm.NewGoError(err))
// panic(vm.NewGoError(err))
vm.SetData("_lastError", err)
gojs.GetLogger(vm).Error(err.Error())
return vm.ToValue(false)
}
return vm.ToValue(gojs.Map{
"type": typ,
@ -559,17 +568,23 @@ func (ws *WS) Write(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
err = ws.writeMessage(websocket.TextMessage, u.JsonBytes(args.Any(0)))
}
if err != nil {
panic(vm.NewGoError(err))
// panic(vm.NewGoError(err))
vm.SetData("_lastError", err)
gojs.GetLogger(vm).Error(err.Error())
return vm.ToValue(false)
}
return nil
return vm.ToValue(true)
}
func (ws *WS) Ping(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
err := ws.writeMessage(websocket.PingMessage, nil)
if err != nil {
panic(vm.NewGoError(err))
// panic(vm.NewGoError(err))
vm.SetData("_lastError", err)
gojs.GetLogger(vm).Error(err.Error())
return vm.ToValue(false)
}
return nil
return vm.ToValue(true)
}
func (ws *WS) WriteMessage(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
@ -592,9 +607,12 @@ func (ws *WS) WriteMessage(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Valu
err = ws.writeMessage(websocket.TextMessage, args.Bytes(1))
}
if err != nil {
panic(vm.NewGoError(err))
// panic(vm.NewGoError(err))
vm.SetData("_lastError", err)
gojs.GetLogger(vm).Error(err.Error())
return vm.ToValue(false)
}
return nil
return vm.ToValue(true)
}
func (ws *WS) Close(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
@ -604,7 +622,10 @@ func (ws *WS) Close(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
ws.closed = true
err := ws.conn.Close()
if err != nil {
panic(vm.NewGoError(err))
// panic(vm.NewGoError(err))
vm.SetData("_lastError", err)
gojs.GetLogger(vm).Error(err.Error())
return vm.ToValue(false)
}
<-ws.pingStopChan
<-ws.closeChan