| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/valib/bhomeclient.git" |
| | | "basic.com/valib/logger.git" |
| | | "encoding/json" |
| | | "io/ioutil" |
| | | "os" |
| | | "vamicro/extend/util" |
| | | "vamicro/system-service/sys" |
| | | "vamicro/system-service/vo" |
| | | ) |
| | | |
| | | type MqttController struct { |
| | | |
| | | } |
| | | |
| | | //获取mqtt配置 |
| | | func (mc *MqttController) GetConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{ |
| | | r := &bhomeclient.Reply{ Success:true } |
| | | mqttf := util.GetVamicroPath()+"/mqtt.config" |
| | | if util.FileExists(mqttf) { |
| | | b, err := ioutil.ReadFile(mqttf) |
| | | if err == nil { |
| | | var set vo.MqttConf |
| | | if err = json.Unmarshal(b, &set);err == nil { |
| | | r.Data = set |
| | | } |
| | | } |
| | | } |
| | | |
| | | return r |
| | | } |
| | | |
| | | //保存mqtt配置 |
| | | func (mc *MqttController) SaveConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{ |
| | | var reqBody vo.MqttConf |
| | | if err :=c.BindJSON(&reqBody);err !=nil { |
| | | return &bhomeclient.Reply{Msg:err.Error()} |
| | | } |
| | | if !reqBody.AnonymousEnable && (reqBody.Username == "" || reqBody.Password == "") { |
| | | return &bhomeclient.Reply{ Msg:"用户名和密码不能为空" } |
| | | } |
| | | |
| | | b, err := json.Marshal(reqBody) |
| | | if err != nil { |
| | | return &bhomeclient.Reply{Msg:err.Error()} |
| | | } |
| | | |
| | | mqttf := util.GetVamicroPath()+"/mqtt.config" |
| | | err = ioutil.WriteFile(mqttf, b, os.ModePerm) |
| | | if err != nil { |
| | | return &bhomeclient.Reply{Msg:err.Error()} |
| | | } |
| | | //1.检查mosquitto 是否安装 (apt安装,配置文件在/etc/mosquitto目录下) |
| | | if ex :=sys.ExistService("mosquitto");ex == "" { |
| | | return &bhomeclient.Reply{ Msg:"mqtt server 尚未安装,请先安装服务" } |
| | | } |
| | | err = sys.SetMqttConf(&reqBody) |
| | | if err != nil { |
| | | logger.Error("SetMqttConf err:", err) |
| | | return &bhomeclient.Reply{Msg:err.Error()} |
| | | } |
| | | |
| | | return &bhomeclient.Reply{Success:true, Msg:"保存成功"} |
| | | package controllers
|
| | |
|
| | | import (
|
| | | "basic.com/valib/bhomeclient.git"
|
| | | "basic.com/valib/logger.git"
|
| | | "encoding/json"
|
| | | "io/ioutil"
|
| | | "os"
|
| | | "vamicro/extend/util"
|
| | | "vamicro/system-service/sys"
|
| | | "vamicro/system-service/vo"
|
| | | )
|
| | |
|
| | | type MqttController struct {
|
| | |
|
| | | }
|
| | |
|
| | | //获取mqtt配置
|
| | | func (mc *MqttController) GetConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
| | | r := &bhomeclient.Reply{ Success:true }
|
| | | mqttf := util.GetVamicroPath()+"/mqtt.config"
|
| | | if util.FileExists(mqttf) {
|
| | | b, err := ioutil.ReadFile(mqttf)
|
| | | if err == nil {
|
| | | var set vo.MqttConf
|
| | | if err = json.Unmarshal(b, &set);err == nil {
|
| | | r.Data = set
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return r
|
| | | }
|
| | |
|
| | | //保存mqtt配置
|
| | | func (mc *MqttController) SaveConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
| | | var reqBody vo.MqttConf
|
| | | if err :=c.BindJSON(&reqBody);err !=nil {
|
| | | return &bhomeclient.Reply{Msg:err.Error()}
|
| | | }
|
| | | if !reqBody.AnonymousEnable && (reqBody.Username == "" || reqBody.Password == "") {
|
| | | return &bhomeclient.Reply{ Msg:"用户名和密码不能为空" }
|
| | | }
|
| | |
|
| | | b, err := json.Marshal(reqBody)
|
| | | if err != nil {
|
| | | return &bhomeclient.Reply{Msg:err.Error()}
|
| | | }
|
| | |
|
| | | mqttf := util.GetVamicroPath()+"/mqtt.config"
|
| | | err = ioutil.WriteFile(mqttf, b, os.ModePerm)
|
| | | if err != nil {
|
| | | return &bhomeclient.Reply{Msg:err.Error()}
|
| | | }
|
| | | //1.检查mosquitto 是否安装 (apt安装,配置文件在/etc/mosquitto目录下)
|
| | | if ex :=sys.ExistService("mosquitto");ex == "" {
|
| | | return &bhomeclient.Reply{ Msg:"mqtt server 尚未安装,请先安装服务" }
|
| | | }
|
| | | err = sys.SetMqttConf(&reqBody)
|
| | | if err != nil {
|
| | | logger.Error("SetMqttConf err:", err)
|
| | | return &bhomeclient.Reply{Msg:err.Error()}
|
| | | }
|
| | |
|
| | | return &bhomeclient.Reply{Success:true, Msg:"保存成功"}
|
| | | } |