Bladeren bron

更新上下线

lijian 2 jaren geleden
bovenliggende
commit
81ec61805a
3 gewijzigde bestanden met toevoegingen van 28 en 13 verwijderingen
  1. 19 2
      services/mqttaccess/mqtt_provider.go
  2. 7 9
      tests/device/device.go
  3. 2 2
      tests/device/main.go

+ 19 - 2
services/mqttaccess/mqtt_provider.go

@@ -1,6 +1,7 @@
 package main
 
 import (
+	"context"
 	"github.com/gogf/gf/encoding/gjson"
 	"sparrow/pkg/klink"
 	"sparrow/pkg/models"
@@ -134,12 +135,28 @@ func processReportStatus(deviceid, vendorId string, message *gjson.Json) {
 }
 
 func processDevLogin(deviceCode, subDeviceId string) error {
-	server.Log.Debugf("子设备上线:%s,%s", deviceCode, subDeviceId)
+	var args rpcs.SubDeviceArgs
+	args.DeviceCode = deviceCode
+	args.Status = 1
+	args.SubDeviceId = subDeviceId
+	var reply *models.SubDevice
+	err := server.RPCCallByName(context.Background(), rpcs.RegistryServerName, "Registry.UpdateSubDevice", &args, &reply)
+	if err != nil {
+		server.Log.Errorf("子设备上线出错:%s", err.Error())
+	}
 	return nil
 }
 
 func processDevLogout(deviceCode, subDeviceId string) error {
-	server.Log.Debugf("子设备下线:%s,%s", deviceCode, subDeviceId)
+	var args rpcs.SubDeviceArgs
+	args.DeviceCode = deviceCode
+	args.Status = 0
+	args.SubDeviceId = subDeviceId
+	var reply *models.SubDevice
+	err := server.RPCCallByName(context.Background(), rpcs.RegistryServerName, "Registry.UpdateSubDevice", &args, &reply)
+	if err != nil {
+		server.Log.Errorf("子设备下线出错:%s", err.Error())
+	}
 	return nil
 }
 

+ 7 - 9
tests/device/device.go

@@ -1,7 +1,6 @@
 package main
 
 import (
-	"crypto/tls"
 	"encoding/hex"
 	"encoding/json"
 	"fmt"
@@ -402,25 +401,24 @@ func (d *Device) doMQTTAccess() error {
 
 	//create a ClientOptions struct setting the broker address, clientid, turn
 	//off trace output and set the default message handler
-	opts := MQTT.NewClientOptions().AddBroker("ssl://" + d.access)
+	opts := MQTT.NewClientOptions().AddBroker("tcp://" + d.access)
 	clientid := fmt.Sprintf("%x", d.id)
 	opts.SetClientID(clientid)
 	opts.SetUsername(clientid) // clientid as username
 	opts.SetPassword(hex.EncodeToString(d.token))
 	opts.SetKeepAlive(30 * time.Second)
-	// process key files
-	cert, err := tls.LoadX509KeyPair(*confCAFile, *confKeyFile)
-	if err != nil {
-		panic(err)
-	}
-	opts.SetTLSConfig(&tls.Config{Certificates: []tls.Certificate{cert}, InsecureSkipVerify: true})
+	//// process key files
+	//cert, err := tls.LoadX509KeyPair(*confCAFile, *confKeyFile)
+	//if err != nil {
+	//	panic(err)
+	//}
+	//opts.SetTLSConfig(&tls.Config{Certificates: []tls.Certificate{cert}, InsecureSkipVerify: true})
 	opts.SetDefaultPublishHandler(d.messageHandler)
 
 	//create and start a client using the above ClientOptions
 	c := MQTT.NewClient(opts)
 	go func() {
 		if token := c.Connect(); token.Wait() && token.Error() != nil {
-			fmt.Println(err.Error())
 			return
 		}
 	}()

+ 2 - 2
tests/device/main.go

@@ -10,8 +10,8 @@ var (
 	testProductKey = flag.String("productkey", "958daf8b3a533f0d9516ac8fd17ef0cb06b439e664787a2a89608a10eeee8eb3c35c82c505d19f8a4417e530de0678fd", "product key")
 	testProtocol   = flag.String("protocol", "mqtt", "access protocol")
 	testDeviceCode = flag.String("dvc", "", "device code")
-	confCAFile     = flag.String("certfile", "", "ca-file")
-	confKeyFile    = flag.String("pkeyfile", "", "key file")
+	confCAFile     = flag.String("certfile", "keys/cacert.pem", "ca-file")
+	confKeyFile    = flag.String("pkeyfile", "keys/privkey.pem", "key file")
 )
 
 func main() {