golang nats request/reply模式

request端代码 request.go

package main

import (
	"github.com/nats-io/nats.go"
	"log"
	"runtime"
	"time"
)

func main() {
	var url = "nats://192.168.17.102:4222"
	nc, err := nats.Connect(url, nats.Name("dalongdemo"))
	if err != nil {
		log.Fatal("connect error")
	}
	message, err := nc.Request("publice", []byte("I have send some messages to you!!!"), 10*time.Second)
	if err != nil {
		log.Println("get error, timeout", err)
	}
	log.Printf("接收到的消息: %v", string(message.Data))
	runtime.Goexit()
}

reply端   reply.go

package main

import (
	"encoding/json"
	"github.com/nats-io/nats.go"
	"log"
	"runtime"
)

func main() {
	var url = "nats://192.168.17.102:4222"
	nc, err := nats.Connect(url, nats.Name("dalongdemo"))
	if err != nil {
		log.Fatal("connect error")
	}
	nc.Subscribe("publice", func(mess *nats.Msg) {
		log.Println(string(mess.Data),string(mess.Subject),string(mess.Reply))
		result, _ := json.Marshal(mess)
		log.Println("接收到的消息为:", string(result),)
		nc.Publish(mess.Reply, []byte("ok ok ok ok ok "))
	})
	runtime.Goexit()
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值