# message_queue **Repository Path**: jamespi/message_queue ## Basic Information - **Project Name**: message_queue - **Description**: 消息队列(mqtt、kafka、rabbitmq、redis)插件客户端封装 物联网项目用来设备通信或者大型分布式系统项目消息传递与存储 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-08 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 插件说明 - [message_queue](https://gitee.com/jamespi/message_queue) - 这是一个消息队列操作客户端插件,包含mqtt、rabbitmq、kafka、redis等的各种特性开关使用及插件启用。 - 插件调用:go get gitee.com/jamespi/message_queue@v0.1.1 ## 插件调用示例 ```azure package main import ( "fmt" "gitee.com/jamespi/message_queue/plugin" _ "gitee.com/jamespi/message_queue/plugins/mqtt" "gitee.com/jamespi/message_queue/service" ) func main() { if client, ok := plugin.Get[service.ClientAdapter](plugin.MQTTPlugin); ok { // 调用适配器方法 // 订阅演示 err := client.Subscribe("test/topic", func(msg []byte) { fmt.Println("收到消息:", string(msg)) }) if err != nil { fmt.Println("订阅失败:", err) return } // 生产消息 err = client.Publish("test/topic", []byte("Hello MQTT")) if err != nil { fmt.Println("发送失败:", err) return } fmt.Println("消息已发送到 test/topic") select {} // 阻塞主线程,等待消息 } else { fmt.Println("插件未启用或不存在") } } ``` ## 依赖插件 - go get gopkg.in/yaml.v3 (废弃) - go get github.com/spf13/viper