You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.1 KiB
52 lines
1.1 KiB
package internal |
|
|
|
import ( |
|
"encoding/json" |
|
"fmt" |
|
mqtt "github.com/eclipse/paho.mqtt.golang" |
|
"strings" |
|
) |
|
|
|
type MoneyBody struct { |
|
Uids string `json:"uids"` |
|
Money int32 `json:"money"` |
|
Type int32 `json:"type"` |
|
ModuleType string `json:"moduleType"` |
|
} |
|
|
|
type MqttChangeMoney struct { |
|
ReqId int64 `json:"reqId"` |
|
ModuleId string `json:"moduleId"` |
|
Body MoneyBody `json:"body"` |
|
} |
|
|
|
func SendMqttMoney(msg interface{}, c chan bool, server string) { |
|
|
|
registerFunc := func(client mqtt.Client, qtmsg mqtt.Message) { |
|
ss := string(msg.([]byte)) |
|
fmt.Println(ss) |
|
err := ClientSend("client", 0, false, ss) |
|
if err != nil { |
|
c <- false |
|
} |
|
} |
|
|
|
mailFunc := func(client mqtt.Client, qtmsg mqtt.Message) { |
|
res := &MqttResult{} |
|
client.Disconnect(1) |
|
ss := string(qtmsg.Payload()) |
|
ss = ss[1 : len(ss)-1] |
|
ss = strings.Replace(ss, "\\", "", -1) |
|
err := json.Unmarshal([]byte(ss), res) |
|
if err == nil && res.RespId == 1 && res.Error == nil { |
|
c <- true |
|
return |
|
} |
|
c <- false |
|
|
|
} |
|
if NewMqttClient(registerFunc, mailFunc, server) != nil { |
|
c <- false |
|
} |
|
|
|
}
|
|
|