fix: 网元跟踪任务优化socket接收

This commit is contained in:
TsMask
2024-10-15 12:11:05 +08:00
parent 06a9a3986b
commit 318fc6cc20
3 changed files with 38 additions and 27 deletions

View File

@@ -52,16 +52,18 @@ func (s *SocketTCP) Close() {
}
// Resolve 处理消息
func (s *SocketTCP) Resolve(callback func(conn *net.Conn)) error {
func (s *SocketTCP) Resolve(callback func(conn *net.Conn, err error)) {
if s.Listener == nil {
return fmt.Errorf("tcp service not created")
callback(nil, fmt.Errorf("tcp service not created"))
return
}
listener := *s.Listener
for {
select {
case <-s.StopChan:
return fmt.Errorf("udp service stop")
callback(nil, fmt.Errorf("udp service stop"))
return
default:
conn, err := listener.Accept()
if err != nil {
@@ -69,14 +71,7 @@ func (s *SocketTCP) Resolve(callback func(conn *net.Conn)) error {
continue
}
defer conn.Close()
// 处理连接
callback(&conn)
// 发送响应
if _, err = conn.Write([]byte("tcp>")); err != nil {
fmt.Println("Error sending response:", err)
}
callback(&conn, nil)
}
}
}