From 0ad141d99e8e6c74205fce66e679a0d9c06f45a9 Mon Sep 17 00:00:00 2001 From: "rick.chan" Date: Tue, 29 Jun 2021 16:04:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20NATS=20Golang=20Client=20?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: rick.chan --- Midware/NATS/Client/Golang/natspub.go | 22 +++++++++++++++++++++ Midware/NATS/Client/Golang/natsreq.go | 27 ++++++++++++++++++++++++++ Midware/NATS/Client/Golang/natsrply.go | 26 +++++++++++++++++++++++++ Midware/NATS/Client/Golang/natssub.go | 25 ++++++++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 Midware/NATS/Client/Golang/natspub.go create mode 100644 Midware/NATS/Client/Golang/natsreq.go create mode 100644 Midware/NATS/Client/Golang/natsrply.go create mode 100644 Midware/NATS/Client/Golang/natssub.go diff --git a/Midware/NATS/Client/Golang/natspub.go b/Midware/NATS/Client/Golang/natspub.go new file mode 100644 index 0000000..ca18847 --- /dev/null +++ b/Midware/NATS/Client/Golang/natspub.go @@ -0,0 +1,22 @@ +package main + +import ( + "fmt" + "time" + + "github.com/nats-io/nats.go" +) + +func main() { + nc, err := nats.Connect(nats.DefaultURL) + defer nc.Close() + if nil != err { + fmt.Println(err) + return + } + + for { + nc.Publish("foo", []byte("Hello Publish!")) + time.Sleep(1 * time.Second) + } +} diff --git a/Midware/NATS/Client/Golang/natsreq.go b/Midware/NATS/Client/Golang/natsreq.go new file mode 100644 index 0000000..6dbf6f3 --- /dev/null +++ b/Midware/NATS/Client/Golang/natsreq.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "time" + + "github.com/nats-io/nats.go" +) + +func main() { + nc, err := nats.Connect(nats.DefaultURL) + defer nc.Close() + if nil != err { + fmt.Println(err) + return + } + + for { + m, err := nc.Request("foo", []byte("Hello Request!"), 1*time.Second) + if nil != err { + fmt.Println(err) + return + } + fmt.Printf("Received a Response: %s\n", string(m.Data)) + time.Sleep(1 * time.Second) + } +} diff --git a/Midware/NATS/Client/Golang/natsrply.go b/Midware/NATS/Client/Golang/natsrply.go new file mode 100644 index 0000000..bc1faff --- /dev/null +++ b/Midware/NATS/Client/Golang/natsrply.go @@ -0,0 +1,26 @@ +package main + +import ( + "fmt" + "sync" + + "github.com/nats-io/nats.go" +) + +func main() { + nc, err := nats.Connect(nats.DefaultURL) + defer nc.Close() + if nil != err { + fmt.Println(err) + return + } + wg := sync.WaitGroup{} + wg.Add(10) + + nc.Subscribe("foo", func(m *nats.Msg) { + fmt.Printf("Received a message: %s\n", string(m.Data)) + m.Respond(m.Data) + wg.Done() + }) + wg.Wait() +} diff --git a/Midware/NATS/Client/Golang/natssub.go b/Midware/NATS/Client/Golang/natssub.go new file mode 100644 index 0000000..754ceed --- /dev/null +++ b/Midware/NATS/Client/Golang/natssub.go @@ -0,0 +1,25 @@ +package main + +import ( + "fmt" + "sync" + + "github.com/nats-io/nats.go" +) + +func main() { + nc, err := nats.Connect(nats.DefaultURL) + defer nc.Close() + if nil != err { + fmt.Println(err) + return + } + wg := sync.WaitGroup{} + wg.Add(10) + + nc.Subscribe("foo", func(m *nats.Msg) { + fmt.Printf("Received a message: %s\n", string(m.Data)) + wg.Done() + }) + wg.Wait() +}