Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
IoTServ committed Jan 11, 2025
1 parent a312289 commit eb01353
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 44 deletions.
7 changes: 3 additions & 4 deletions gateway-go.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
gatewayuuid: 62ded68f-5bf6-4d97-9c2e-ced2d5fd215f
logconfig:
enablestdout: true
logfilepath: ""
loginwithtokenmap:
ee756a19-812e-4eb8-b4cd-425845858716: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJSdW5JZCI6ImVlNzU2YTE5LTgxMmUtNGViOC1iNGNkLTQyNTg0NTg1ODcxNiIsIkhvc3QiOiJndW9uZWkubmF0LWNsb3VkLmNvbSIsIlRjcFBvcnQiOjM0MzIwLCJLY3BQb3J0IjozNDMyMCwiVGxzUG9ydCI6MzQzMjEsIkdycGNQb3J0IjozNDMyMiwiVURQQXBpUG9ydCI6MzQzMjEsIktDUEFwaVBvcnQiOjM0MzIyLCJQZXJtaXNzaW9uIjpbImdhdGV3YXkiXSwiVHh0cyI6e30sImV4cCI6MjAxNzMxNjYxODY5LCJuYmYiOjE3MzE2MzMwNjl9.BWb42t00vs2IJCDAD5P-ZQiKkrqNtAJyd1767W3x20E
enablestdout: true
logfilepath: ""
loginwithtokenmap: {}
63 changes: 33 additions & 30 deletions netservice/handle/handle.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,10 @@ func HandleStream(stream net.Conn, tokenStr string) {
log.Printf(err.Error())
return
}
defer func() {
if stream != nil {
err = stream.Close()
return
}
if err != nil {
log.Println(err.Error())
}
}()
rawMsg, err := msg.ReadMsg(stream)
if err != nil {
log.Printf(err.Error() + "从stream读取数据错误")
stream.Close()
return
}
//log.Printf("begin Swc")
Expand Down Expand Up @@ -145,6 +137,8 @@ func HandleStream(stream net.Conn, tokenStr string) {
if err != nil {
log.Println(err.Error())
}
//TODO 防止未关闭的连接,取决于请求方是否关闭
//stream.Close()
}

case *models.ReqNewP2PCtrlAsServer:
Expand All @@ -153,6 +147,9 @@ func HandleStream(stream net.Conn, tokenStr string) {
go func() {
session, listener, err := gateway.MakeP2PSessionAsServer(stream, m, tokenModel)
if err != nil {
if listener != nil {
listener.Close()
}
log.Println("gateway.MakeP2PSessionAsServer:", err)
return
}
Expand All @@ -169,6 +166,9 @@ func HandleStream(stream net.Conn, tokenStr string) {
go func() {
session, listener, err := gateway.MakeP2PSessionAsClient(stream, m, tokenModel)
if err != nil {
if listener != nil {
listener.Close()
}
log.Println("gateway.MakeP2PSessionAsClient:", err)
return
}
Expand Down Expand Up @@ -203,33 +203,36 @@ func HandleStream(stream net.Conn, tokenStr string) {
log.Println(err.Error())
}
}
//TODO 是否关闭
stream.Close()
}
//由于用户在服务器账户删掉了这个网关,所有网关删掉服务器登录以供新用户绑定
case *models.DeleteGatewayJwt:
//{
// log.Println("删除配置:", tokenModel.RunId)
// GatewayManager.DelServer(tokenModel.RunId)
// delete(ConfigMode.LoginWithTokenMap, tokenModel.RunId)
// err = WriteConfigFile(ConfigMode, ConfigFilePath)
// if err != nil {
// log.Println(err)
// err = msg.WriteMsg(stream, &models.Error{
// Code: 1,
// Message: err.Error(),
// })
// if err != nil {
// log.Println(err.Error())
// }
// return
// }
// err = msg.WriteMsg(stream, &models.OK{})
// if err != nil {
// log.Println(err.Error())
// }
//}
{
// log.Println("删除配置:", tokenModel.RunId)
// GatewayManager.DelServer(tokenModel.RunId)
// delete(ConfigMode.LoginWithTokenMap, tokenModel.RunId)
// err = WriteConfigFile(ConfigMode, ConfigFilePath)
// if err != nil {
// log.Println(err)
// err = msg.WriteMsg(stream, &models.Error{
// Code: 1,
// Message: err.Error(),
// })
// if err != nil {
// log.Println(err.Error())
// }
// return
// }
// err = msg.WriteMsg(stream, &models.OK{})
// if err != nil {
// log.Println(err.Error())
// }
stream.Close()
}
default:
log.Printf("type err")
stream.Close()
}
}

Expand Down
2 changes: 1 addition & 1 deletion netservice/services/connect/service/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"crypto/tls"
)

// check
// CheckTcpUdpTls 检查端口状态,如果端口可连接则状态为0,如果不可连接则状态为其他
func CheckTcpUdpTls(connType, addr string) (int, string) {
var c net.Conn = nil
var err error
Expand Down
7 changes: 4 additions & 3 deletions netservice/services/connect/service/mDns.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,14 @@ func FindAllmDNS(stream net.Conn, service *models.NewService) error {
log.Println(err.Error())
return err
}
log.Println("mdns rstByte:", string(rstByte))
//log.Println("mdns rstByte:", string(rstByte))
err = msg.WriteMsg(stream, &models.JsonResponse{Code: 0, Msg: "Success", Result: string(rstByte)})
if err != nil {
log.Println("写消息错误:")
log.Println(err.Error())
}
content, _ := json.Marshal(&models.JsonResponse{Code: 0, Msg: "Success", Result: string(rstByte)})
log.Println("content:", string(content))
//content, _ := json.Marshal(&models.JsonResponse{Code: 0, Msg: "Success", Result: string(rstByte)})
//log.Println("content:", string(content))
//stream.Close()
return err
}
4 changes: 3 additions & 1 deletion netservice/services/connect/service/serviceHdl.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,17 @@ func ServiceHdl(stream net.Conn, service *models.NewService) error {
return err
case "mDNSFind":
err := FindAllmDNS(stream, service)
//stream.Close()
return err
case "scanPort":
err := ScanPort(stream, service)
//stream.Close()
return err
case "ListenMulticastUDP":
err := ListenMulticastUDP(stream, service)
return err
default:

stream.Close()
}
return nil
}
14 changes: 9 additions & 5 deletions services/serverSession.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ type ServerSession struct {
token string
tokenModel *models.TokenClaims
//内部存储
session *yamux.Session
heartbeat *time.Ticker
quit chan struct{}
loginLock sync.Mutex
loopStreamLock sync.Mutex
session *yamux.Session
heartbeat *time.Ticker
quit chan struct{}

checkSessionStatusLock sync.Mutex
loginLock sync.Mutex
loopStreamLock sync.Mutex
}

func (ss *ServerSession) stop() {
Expand Down Expand Up @@ -78,6 +80,8 @@ func (ss *ServerSession) loopStream() {
}

func (ss *ServerSession) checkSessionStatus() {
ss.checkSessionStatusLock.Lock()
defer ss.checkSessionStatusLock.Unlock()
if ss.session == nil || (ss.session != nil && ss.session.IsClosed()) {
log.Println("开始(重新)连接:", ss.tokenModel.RunId, "@", ss.tokenModel.Host)
err := ss.loginServer()
Expand Down

0 comments on commit eb01353

Please sign in to comment.