Ver Fonte

fix reconnect

dujunchen há 1 semana atrás
pai
commit
fcedf00728
2 ficheiros alterados com 13 adições e 9 exclusões
  1. 1 8
      internal/app/index.go
  2. 12 1
      internal/app/stc/index.go

+ 1 - 8
internal/app/index.go

@@ -2,11 +2,8 @@ package app
 
 import (
 	"net"
-	"pbx-api-gin/internal/app/ami/action"
 	"pbx-api-gin/internal/app/mysql"
 	"pbx-api-gin/internal/app/stc"
-
-	"pbx-api-gin/pkg/lfshook"
 )
 
 var conn net.Conn
@@ -14,10 +11,6 @@ var conn net.Conn
 func StartApp() {
 	mysql.CreateDBInstance()
 	// 启动带有重连机制的连接管理协程
-	go stc.StartStcConnection("10.0.11.11", 10100)
+	go stc.StartStcConnection(conn)
 	// 启动其他服务...
-	go action.StartAMI(func() {
-		lfshook.NewLogger().Info("ami callback")
-		// 首次连接才进行初始化
-	}, []func(event map[string]string){}, conn)
 }

+ 12 - 1
internal/app/stc/index.go

@@ -3,17 +3,21 @@ package stc
 import (
 	"fmt"
 	"net"
+	"pbx-api-gin/internal/app/ami/action"
 	"pbx-api-gin/internal/app/stc/broadcast"
 	msgdata "pbx-api-gin/internal/app/stc/data"
+	"pbx-api-gin/pkg/lfshook"
 	"sync"
 
 	"syscall"
 	"time"
 )
 
-func StartStcConnection(ServerAddr string, Port int) {
+func StartStcConnection(conn net.Conn) {
 	//var conn net.Conn
 	var wg sync.WaitGroup
+	ServerAddr := "10.0.11.11"
+	Port := 10100
 
 	for {
 		// 尝试建立连接
@@ -21,6 +25,7 @@ func StartStcConnection(ServerAddr string, Port int) {
 		if err != nil {
 			fmt.Printf("连接失败 %s:%d,将在5秒后重试...\n", ServerAddr, Port)
 			time.Sleep(5 * time.Second)
+			lfshook.NewLogger().Logger.Infof("reconnect err %+v", err)
 			continue
 		}
 
@@ -37,6 +42,12 @@ func StartStcConnection(ServerAddr string, Port int) {
 			Sendheartbeat(conn) // 发送心跳
 		}()
 
+		//start AMI
+		go action.StartAMI(func() {
+			lfshook.NewLogger().Info("ami callback")
+			// 首次连接才进行初始化
+		}, []func(event map[string]string){}, conn)
+
 		// 等待连接断开
 		wg.Wait()
 		fmt.Println("检测到连接断开,准备重新连接...")