|
|
@@ -36,6 +36,7 @@ var err error
|
|
|
var conn *websocket.Conn
|
|
|
var ctrl converse.ConverseController
|
|
|
var disconnect = make(chan bool)
|
|
|
+var cronstart=false
|
|
|
|
|
|
func main() {
|
|
|
temp = false
|
|
|
@@ -109,10 +110,12 @@ func main() {
|
|
|
case <-time.After(time.Second * 10):
|
|
|
conn = WebSocketFound()
|
|
|
//开启计时器
|
|
|
- initTimer()
|
|
|
+ //initTimer()
|
|
|
if conn != nil {
|
|
|
+ log.Println("正在重连-------")
|
|
|
defer conn.Close()
|
|
|
ctrl.GetConnection(conn)
|
|
|
+ //ctrl.SendMessage(nil,conn)
|
|
|
//go ListenToSendMsg(conn)
|
|
|
//go ListenToReadMsg(conn)
|
|
|
goto label
|
|
|
@@ -142,6 +145,7 @@ func initTimer () {
|
|
|
go func() {
|
|
|
<-timer.C
|
|
|
//conn.Close()
|
|
|
+ temp = true
|
|
|
go SetDisconnect()
|
|
|
}()
|
|
|
timer.Stop()
|
|
|
@@ -166,17 +170,31 @@ func WebSocketFound() *websocket.Conn {
|
|
|
err := conn.WriteControl(10, []byte(appData), time.Now().Add(time.Second))
|
|
|
log.Println("err:",err)
|
|
|
if err == ErrCloseSent {
|
|
|
- if !temp{
|
|
|
- go ListenToSendMsg(conn)
|
|
|
- go ListenToReadMsg(conn)
|
|
|
- }
|
|
|
+ log.Println("WebSocketFound-err-temp:",temp)
|
|
|
temp = true
|
|
|
go SetDisconnect()
|
|
|
return nil
|
|
|
} else if e, ok := err.(net.Error); ok && e.Temporary() {
|
|
|
+ log.Println("WebSocketFound-ok-temp:",temp)
|
|
|
+ if temp{
|
|
|
+ go ListenToSendMsg(conn)
|
|
|
+ go ListenToReadMsg(conn)
|
|
|
+ }
|
|
|
+ //disconnect <- false
|
|
|
+ temp = false
|
|
|
+ resetTimer()
|
|
|
+ return nil
|
|
|
+ } else {
|
|
|
+ log.Println("WebSocketFound-ok-temp:",temp)
|
|
|
+ if temp{
|
|
|
+ go ListenToSendMsg(conn)
|
|
|
+ go ListenToReadMsg(conn)
|
|
|
+ }
|
|
|
+ //disconnect <- false
|
|
|
temp = false
|
|
|
resetTimer()
|
|
|
return nil
|
|
|
+
|
|
|
}
|
|
|
return err
|
|
|
})
|
|
|
@@ -208,11 +226,20 @@ func ListenToReadMsg(conn *websocket.Conn) (pid int) {
|
|
|
|
|
|
// 定时查询接口任务,给基点接口发送请求
|
|
|
func ListenToSendMsg(conn *websocket.Conn) {
|
|
|
+
|
|
|
log.Println("发送消息>>>>>>>>>>>>>>>>>>>")
|
|
|
cron := cron.New()
|
|
|
// 定时规则:每隔10秒执行一次
|
|
|
tick := "*/10 * * * * ?"
|
|
|
err = cron.AddFunc(tick, func() {
|
|
|
+ if(temp) {
|
|
|
+ conn = WebSocketFound()
|
|
|
+ if conn != nil {
|
|
|
+ log.Println("正在重连-------")
|
|
|
+ defer conn.Close()
|
|
|
+ ctrl.GetConnection(conn)
|
|
|
+ }
|
|
|
+ }
|
|
|
//判断conn是否还在 todo
|
|
|
//
|
|
|
svc := converseService.GetConverseService(utils.DBE)
|
|
|
@@ -246,9 +273,11 @@ func ListenToSendMsg(conn *websocket.Conn) {
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
- if !temp {
|
|
|
+ if !cronstart {
|
|
|
+ cronstart = true
|
|
|
cron.Start()
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ if temp {
|
|
|
svc := converseService.GetConverseService(utils.DBE)
|
|
|
sql:=" update sample_storage_task set StatusCode =4 where StatusCode =1"
|
|
|
svc.DBE.Exec(sql)
|