di_mqtt.go 630 B

12345678910111213141516171819202122232425262728293031323334
  1. package dep
  2. import (
  3. "kpt-pasture/config"
  4. mqttHandle "kpt-pasture/module/mqtt"
  5. "kpt-pasture/service/mqtt"
  6. "go.uber.org/dig"
  7. )
  8. func DIMqttService() (out mqtt.IMqttServer) {
  9. container := DI()
  10. if err := container.Provide(MqttHandel); err != nil {
  11. panic(err)
  12. }
  13. if err := container.Invoke(func(c mqtt.IMqttServer) { out = c }); err != nil {
  14. panic(err)
  15. }
  16. return
  17. }
  18. // MqttHandel 相关消费
  19. func MqttHandel(dep MqttDependency) mqtt.IMqttServer {
  20. cfg := config.Options()
  21. sev := mqtt.NewServer(cfg)
  22. sev.Run(dep.MqttHub)
  23. return sev
  24. }
  25. type MqttDependency struct {
  26. dig.In
  27. MqttHub mqttHandle.Entry // 处理数据
  28. }