Skip to content

Commit 2297803

Browse files
committed
添加手动注册服务工具
1 parent 36edbdf commit 2297803

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

gateway-go.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
gatewayuuid: 62ded68f-5bf6-4d97-9c2e-ced2d5fd215f
1+
gatewayuuid:
22
logconfig:
33
enablestdout: true
44
logfilepath: ""

netservice/services/connect/service/mdns/mDns.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package mdns
33
import (
44
"context"
55
"encoding/json"
6+
"github.com/OpenIoTHub/gateway-go/v2/register"
67
"github.com/OpenIoTHub/utils/models"
78
"github.com/OpenIoTHub/utils/msg"
89
"github.com/grandcat/zeroconf"
@@ -55,6 +56,20 @@ func (mc *MdnsCtrl) FindAllmDNS(stream net.Conn, service *models.NewService) err
5556
//if len(rst) > 0 {
5657
// log.Println(rst[0])
5758
//}
59+
registeredServices := register.GetRegisteredServices()
60+
for _, registeredService := range registeredServices {
61+
rst = append(rst, &models.MDNSResult{
62+
Instance: registeredService.Instance,
63+
Service: registeredService.Service,
64+
Domain: registeredService.Domain,
65+
HostName: registeredService.HostName,
66+
Port: registeredService.Port,
67+
Text: registeredService.Text,
68+
TTL: registeredService.TTL,
69+
AddrIPv4: registeredService.AddrIPv4,
70+
AddrIPv6: registeredService.AddrIPv6,
71+
})
72+
}
5873
rstByte, err := json.Marshal(&rst)
5974
if err != nil {
6075
log.Println(err.Error())

register/register_service.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package register
2+
3+
import (
4+
"github.com/OpenIoTHub/utils/models"
5+
"net"
6+
"sync"
7+
)
8+
9+
var registeredServices = make([]models.MDNSResult, 0)
10+
var registeredServicesLock sync.RWMutex
11+
12+
func RegisterService(instance, service, domain, hostname string, port int, text []string, TTL uint32, AddrIPv4, AddrIPv6 []net.IP) (err error) {
13+
registeredServicesLock.Lock()
14+
defer registeredServicesLock.Unlock()
15+
registeredServices = append(registeredServices, models.MDNSResult{
16+
Instance: instance,
17+
Service: service,
18+
Domain: domain,
19+
HostName: hostname,
20+
Port: port,
21+
Text: text,
22+
TTL: TTL,
23+
AddrIPv4: AddrIPv4,
24+
AddrIPv6: AddrIPv6,
25+
})
26+
return
27+
}
28+
29+
func GetRegisteredServices() (services []models.MDNSResult) {
30+
registeredServicesLock.RLock()
31+
defer registeredServicesLock.RUnlock()
32+
return registeredServices
33+
}

0 commit comments

Comments
 (0)