Bladeren bron

test: device token

lijian 2 jaren geleden
bovenliggende
commit
8f6dfce2e5
3 gewijzigde bestanden met toevoegingen van 16 en 11 verwijderingen
  1. 4 0
      pkg/mqtt/connection.go
  2. 3 2
      pkg/token/token.go
  3. 9 9
      services/mqttaccess/mqtt_provider.go

+ 4 - 0
pkg/mqtt/connection.go

@@ -229,6 +229,10 @@ func (c *Connection) RcvMsgFromClient() {
 			server.Log.Infof("device %d, connected to server now, host: %s", c.DeviceID, host)
 
 		case *Publish:
+			if msg.MessageID < c.MessageID {
+				return
+			}
+			c.MessageID = msg.MessageID
 			server.Log.Infof("%s, publish topic: %s, msgId: %v", host, msg.TopicName, msg.MessageID)
 			err = c.Mgr.PublishMessage2Server(c.DeviceCode, c.VendorId, msg)
 			if err != nil {

+ 3 - 2
pkg/token/token.go

@@ -1,6 +1,7 @@
 package token
 
 import (
+	"encoding/hex"
 	"errors"
 	"github.com/gogf/gf/database/gredis"
 	"reflect"
@@ -39,7 +40,7 @@ func (helper *Helper) GenerateToken(recordId string) ([]byte, error) {
 
 	key := DeviceTokenKeyPrefix + recordId
 
-	_, err = helper.redisClient.Do("SET", key, token)
+	_, err = helper.redisClient.Do("SET", key, hex.EncodeToString(token))
 	if err != nil {
 		return nil, err
 	}
@@ -59,7 +60,7 @@ func (helper *Helper) ValidateToken(id string, token []byte) error {
 		return err
 	}
 
-	if !reflect.DeepEqual(readToken, token) {
+	if hex.EncodeToString(token) != readToken {
 		return errors.New("token not match")
 	}
 

+ 9 - 9
services/mqttaccess/mqtt_provider.go

@@ -17,15 +17,15 @@ func NewMQTTProvider() *MQTTProvider {
 }
 
 func (mp *MQTTProvider) ValidateDeviceToken(deviceid string, token []byte) error {
-	args := rpcs.ArgsValidateDeviceAccessToken{
-		Id:          deviceid,
-		AccessToken: token,
-	}
-	reply := rpcs.ReplyValidateDeviceAccessToken{}
-	err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.ValidateDeviceAccessToken", args, &reply)
-	if err != nil {
-		return err
-	}
+	//args := rpcs.ArgsValidateDeviceAccessToken{
+	//	Id:          deviceid,
+	//	AccessToken: token,
+	//}
+	//reply := rpcs.ReplyValidateDeviceAccessToken{}
+	//err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.ValidateDeviceAccessToken", args, &reply)
+	//if err != nil {
+	//	return err
+	//}
 	return nil
 }
 func (mp *MQTTProvider) OnDeviceOnline(args rpcs.ArgsGetOnline, VendorId string) error {