以json格式发送消息
import (
"encoding/json"
"fmt"
"github.com/nats-io/nats.go"
"robot-pcshare/model"
)
var natsConn *nats.Conn
type MsgData struct {
FileData []byte `json:"file_data"`
ContentType string `json:"content_type"`
Content string `json:"content"`
Err error `json:"err"`
}
func init() {
natsConn = getNatsConn()
}
//订阅
func NatEncodedSubscribe() {
c, _ := nats.NewEncodedConn(natsConn, "json")
c.Subscribe("wr", func(msgData *model.MsgData) {
fmt.Printf("接收到nats消息: %+v\n")
if msgData.Err == nil {
} else {
fmt.Println("nats接收错误", msgData.Err.Error())
}
})
}
//发布
func NatEncodedPublish(data *model.MsgData) {
c, _ := nats.NewEncodedConn(natsConn, "json")
err := c.Publish("rd", data)
if err != nil {
fmt.Println("消息发布错误:", err.Error())
}
fmt.Println("消息发送完毕")
}
func getNatsConn() *nats.Conn {
//输入nats服务的地址和端口
natsConn, err := nats.Connect("nats://xxxxxxxx:xxxx")
if err != nil {
fmt.Errorf("nats连接错误%#v", err)
return nil
}
return natsConn
}