sub.go 591 B

12345678910111213141516171819202122232425262728293031
  1. package mqtt2
  2. import (
  3. "fmt"
  4. "sync"
  5. golangMqtt "github.com/eclipse/paho.mqtt.golang"
  6. "go.uber.org/dig"
  7. )
  8. type MQTTConsumer struct {
  9. dig.In
  10. MQTTServer *MqttServer
  11. }
  12. var bufferPool = sync.Pool{
  13. New: func() interface{} {
  14. return make([]byte, 1024) // 根据实际情况调整缓冲区大小
  15. },
  16. }
  17. func (c *MQTTConsumer) Start() {
  18. handler := func(client golangMqtt.Client, msg golangMqtt.Message) {
  19. fmt.Printf("MQTT message received: %s\n", msg.Payload())
  20. // 处理消息的逻辑
  21. }
  22. c.MQTTServer.Subscribe(c.MQTTServer.Conf.Topic, int32(c.MQTTServer.Conf.Qos), handler)
  23. }