| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package busdriver
- import (
- "fmt"
- "net/http"
- "time"
- "github.com/gin-gonic/gin"
- )
- // TestBus 测试接口
- func TestBus() {
- MqConnect()
- //defer closeMQ()
- MqExchange()
- // 订阅主题
- err1 := SubscribeTopic("test1")
- err2 := SubscribeTopic("test2")
- err3 := SubscribeTopic("test3")
- if err1 != nil || err2 != nil || err3 != nil {
- fmt.Println("subscribe topic failed")
- return
- }
- MqStart()
- // 启动发送协程
- go func() {
- for {
- for _, subinfo := range SubInfos {
- msg := "test message:" + time.Now().Format("2006-01-02 15:04:05")
- Publish(subinfo.Topic, msg)
- }
- time.Sleep(5 * time.Second)
- }
- }()
- }
- // SubTopicReq 主题订阅请求
- type SubTopicReq struct {
- Topic string `json:"topic" binding:"required"`
- }
- // MsgPublishReq 消息发送请求
- type MsgPublishReq struct {
- Topic string `json:"topic" binding:"required"`
- Content string `json:"content" binding:"required"`
- }
- // SubTopic 主题订阅
- func SubTopic(c *gin.Context) {
- var subreq SubTopicReq
- err := c.ShouldBind(&subreq)
- if err != nil {
- c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
- }
- err = SubscribeTopic(subreq.Topic)
- if err != nil {
- fmt.Println("subscribe topic failed:", err)
- }
- c.SecureJSON(http.StatusOK, 0)
- }
- // MsgPublish 消息发送
- func MsgPublish(c *gin.Context) {
- var msgpublish MsgPublishReq
- err := c.ShouldBind(&msgpublish)
- if err != nil {
- c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
- }
- err = Publish(msgpublish.Topic, msgpublish.Content)
- if err != nil {
- fmt.Println("publish topic failed", err)
- }
- c.SecureJSON(http.StatusOK, 0)
- }
|