1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package main
- import (
- "flag"
- "fmt"
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- "lzyd-message-api/common"
- "lzyd-message-api/models"
- "lzyd-message-api/router"
- "lzyd-message-api/wrapper"
- "os"
- "path"
- "time"
- "github.com/TingYunAPM/go"
- )
- func main() {
- models.MemoryCacheVar = new(models.MemoryCache)
- models.MemoryCacheVar.Items = make(map[string]*models.Item)
- //初始化tingyun: 应用名称、帐号等在tingyun.json中配置
- tingyun.AppInit("tingyun.json")
- defer tingyun.AppStop()
- //原有业务逻辑
- var err error
- fPath, _ := os.Getwd()
- fPath = path.Join(fPath, "conf")
- configPath := flag.String("c", fPath, "config file path")
- flag.Parse()
- err = common.LoadConfigInformation(*configPath)
- if err != nil {
- return
- }
- // 先启动MQTT服务
- go StartMQTTServer()
- if common.ServerInfo.Mode == "debug" {
- gin.SetMode(gin.DebugMode)
- } else if common.ServerInfo.Mode == "release" {
- gin.SetMode(gin.ReleaseMode)
- }
- defer func() {
- _ = wrapper.Logger.Sync()
- }()
- //router init
- r := router.InitRouter()
- server := common.ServerInfo
- serverInfo := server.Host + ":" + server.Port
- // restart
- wrapper.Logger.Info("server start info: " + serverInfo)
- err = r.Run(serverInfo)
- if err != nil {
- wrapper.Logger.Error("server start failed: " + err.Error())
- }
- }
- func StartMQTTServer() {
- clientId := common.MQTTClientPrefixServ + "-" + time.Now().Format("20060102150405")
- common.MQTTClient = wrapper.NewClient(common.MqttServerUrl, common.MqttUserName, common.MqttPassword, clientId)
- common.MQTTClient.SetQOS(byte(common.MqttQos))
- common.MQTTClient.SetkeepAliveInterval(time.Second * 30)
- common.MQTTClient.SetPingTimeout(time.Second * 1)
- //Start the MQTT client.
- err := common.MQTTClient.Start()
- if err != nil {
- fmt.Printf("MQTT启动失败: %s \n", err.Error())
- }
- err = common.MQTTClient.Subscribe(common.MqttServerTopic, func(topic string, msg *wrapper.Message) {
- //services.MqttMessageHandler(msg)
- })
- if err != nil {
- wrapper.Logger.Info("[MQTT]订阅失败", zap.String("error", err.Error()))
- } else {
- wrapper.Logger.Info("[MQTT]订阅成功", zap.String("topic", common.MqttServerTopic))
- }
- }
|