|
8 | 8 | "gofr.dev/pkg/gofr/datasource/pubsub" |
9 | 9 | "gofr.dev/pkg/gofr/datasource/pubsub/google" |
10 | 10 | "gofr.dev/pkg/gofr/datasource/pubsub/kafka" |
| 11 | + "gofr.dev/pkg/gofr/datasource/pubsub/mqtt" |
11 | 12 | "gofr.dev/pkg/gofr/datasource/redis" |
12 | 13 | "gofr.dev/pkg/gofr/datasource/sql" |
13 | 14 | "gofr.dev/pkg/gofr/logging" |
@@ -94,6 +95,33 @@ func (c *Container) Create(conf config.Config) { |
94 | 95 | ProjectID: conf.Get("GOOGLE_PROJECT_ID"), |
95 | 96 | SubscriptionName: conf.Get("GOOGLE_SUBSCRIPTION_NAME"), |
96 | 97 | }, c.Logger, c.metricsManager) |
| 98 | + case "MQTT": |
| 99 | + var qos byte |
| 100 | + |
| 101 | + port, _ := strconv.Atoi(conf.Get("MQTT_PORT")) |
| 102 | + order, _ := strconv.ParseBool(conf.GetOrDefault("MQTT_MESSAGE_ORDER", "false")) |
| 103 | + |
| 104 | + switch conf.Get("MQTT_QOS") { |
| 105 | + case "1": |
| 106 | + qos = 1 |
| 107 | + case "2": |
| 108 | + qos = 2 |
| 109 | + default: |
| 110 | + qos = 0 |
| 111 | + } |
| 112 | + |
| 113 | + configs := &mqtt.Config{ |
| 114 | + Protocol: conf.GetOrDefault("MQTT_PROTOCOL", "tcp"), // using tcp as default method to connect to broker |
| 115 | + Hostname: conf.Get("MQTT_HOST"), |
| 116 | + Port: port, |
| 117 | + Username: conf.Get("MQTT_USER"), |
| 118 | + Password: conf.Get("MQTT_PASSWORD"), |
| 119 | + ClientID: conf.Get("MQTT_CLIENT_ID_SUFFIX"), |
| 120 | + QoS: qos, |
| 121 | + Order: order, |
| 122 | + } |
| 123 | + |
| 124 | + c.PubSub = mqtt.New(configs, c.Logger, c.metricsManager) |
97 | 125 | } |
98 | 126 | } |
99 | 127 |
|
|
0 commit comments