mirror of https://github.com/ehang-io/nps
update sdk
parent
a602b11270
commit
daaf1f28e1
|
@ -42,9 +42,16 @@ func NewRPClient(svraddr string, vKey string, bridgeConnType string, proxyUrl st
|
|||
}
|
||||
}
|
||||
|
||||
var NowStatus int
|
||||
var CloseClient bool
|
||||
//start
|
||||
func (s *TRPClient) Start() {
|
||||
retry:
|
||||
NowStatus = 0
|
||||
if CloseClient {
|
||||
CloseClient = false
|
||||
return
|
||||
}
|
||||
c, err := NewConn(s.bridgeConnType, s.vKey, s.svrAddr, common.WORK_MAIN, s.proxyUrl)
|
||||
if err != nil {
|
||||
logs.Error("The connection server failed and will be reconnected in five seconds, error", err.Error())
|
||||
|
@ -66,6 +73,7 @@ retry:
|
|||
if s.cnf != nil && len(s.cnf.Healths) > 0 {
|
||||
go heathCheck(s.cnf.Healths, s.signal)
|
||||
}
|
||||
NowStatus = 1
|
||||
//msg connection, eg udp
|
||||
s.handleMain()
|
||||
}
|
||||
|
@ -279,6 +287,7 @@ loop:
|
|||
}
|
||||
|
||||
func (s *TRPClient) Close() {
|
||||
CloseClient = true
|
||||
if s.tunnel != nil {
|
||||
s.tunnel.Close()
|
||||
}
|
||||
|
|
|
@ -6,44 +6,31 @@ import (
|
|||
"github.com/cnlh/nps/client"
|
||||
"github.com/cnlh/nps/lib/common"
|
||||
"github.com/cnlh/nps/lib/version"
|
||||
"time"
|
||||
)
|
||||
|
||||
var status int
|
||||
var closeBefore int
|
||||
var cl *client.TRPClient
|
||||
|
||||
//export StartClientByVerifyKey
|
||||
func StartClientByVerifyKey(serverAddr, verifyKey, connType, proxyUrl *C.char) int {
|
||||
logs.SetLogger("store")
|
||||
if cl != nil {
|
||||
closeBefore = 1
|
||||
cl.Close()
|
||||
}
|
||||
cl = client.NewRPClient(C.GoString(serverAddr), C.GoString(verifyKey), C.GoString(connType), C.GoString(proxyUrl), nil)
|
||||
closeBefore = 0
|
||||
go func() {
|
||||
for {
|
||||
status = 1
|
||||
cl.Start()
|
||||
status = 0
|
||||
if closeBefore == 1 {
|
||||
return
|
||||
}
|
||||
time.Sleep(time.Second * 5)
|
||||
}
|
||||
cl.Start()
|
||||
return
|
||||
}()
|
||||
return 1
|
||||
}
|
||||
|
||||
//export GetClientStatus
|
||||
func GetClientStatus() int {
|
||||
return status
|
||||
return client.NowStatus
|
||||
}
|
||||
|
||||
//export CloseClient
|
||||
func CloseClient() {
|
||||
closeBefore = 1
|
||||
cl.Close()
|
||||
}
|
||||
|
||||
|
@ -51,6 +38,7 @@ func CloseClient() {
|
|||
func Version() *C.char {
|
||||
return C.CString(version.VERSION)
|
||||
}
|
||||
|
||||
//export Logs
|
||||
func Logs() *C.char {
|
||||
return C.CString(common.GetLogMsg())
|
||||
|
|
Loading…
Reference in New Issue