From dcd9ad9903a13a589973341d53272f1d1ed3c514 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@qq.com>
Date: 星期四, 16 五月 2019 09:56:36 +0800
Subject: [PATCH] add mangos reqrep mode
---
areaApi_test.go | 2
reqrepClient_test.go | 23 +++++++++++
go.sum | 2 +
go.mod | 2 +
reqrepClient.go | 43 +++++++++++++++++++++
5 files changed, 71 insertions(+), 1 deletions(-)
diff --git a/areaApi_test.go b/areaApi_test.go
index 5a3274f..40d8d3a 100644
--- a/areaApi_test.go
+++ b/areaApi_test.go
@@ -7,7 +7,7 @@
func TestGetLocalCameraTree(t *testing.T) {
var api AreaApi
- body := api.GetLocalCameraTree(0)
+ body := api.GetLocalCameraTree(0, 0, "c")
fmt.Println(body)
}
diff --git a/go.mod b/go.mod
index cc2d2a4..6134be4 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,5 @@
module dbapi
go 1.12
+
+require nanomsg.org/go-mangos v1.4.0
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..7d77097
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,2 @@
+nanomsg.org/go-mangos v1.4.0 h1:pVRLnzXePdSbhWlWdSncYszTagERhMG5zK/vXYmbEdM=
+nanomsg.org/go-mangos v1.4.0/go.mod h1:MOor8xUIgwsRMPpLr9xQxe7bT7rciibScOqVyztNxHQ=
diff --git a/reqrepClient.go b/reqrepClient.go
new file mode 100644
index 0000000..1a32afc
--- /dev/null
+++ b/reqrepClient.go
@@ -0,0 +1,43 @@
+package dbapi
+
+import (
+ "fmt"
+ "os"
+ "nanomsg.org/go-mangos"
+ "nanomsg.org/go-mangos/protocol/req"
+ "nanomsg.org/go-mangos/transport/ipc"
+ "nanomsg.org/go-mangos/transport/tcp"
+)
+
+type ReqrepApi struct {
+
+}
+
+const (
+ ReqRep_URL = "tcp://127.0.0.1:8002"
+)
+
+func (api ReqrepApi)SendRequest(reqStr string) string {
+ var sock mangos.Socket
+ var err error
+ var msg []byte
+
+ if sock, err = req.NewSocket(); err !=nil {
+ fmt.Println("can't get new req socket!")
+ os.Exit(1)
+ }
+ sock.AddTransport(ipc.NewTransport())
+ sock.AddTransport(tcp.NewTransport())
+ if err = sock.Dial(ReqRep_URL);err !=nil {
+ fmt.Println("can't dial on req socket!!")
+ os.Exit(1)
+ }
+ if err =sock.Send([]byte(reqStr));err !=nil {
+ fmt.Println("can't send msg")
+ }
+ if msg,err = sock.Recv();err !=nil {
+ fmt.Println("can't get msg from mangos reqrep server")
+ }
+ defer sock.Close()
+ return string(msg)
+}
\ No newline at end of file
diff --git a/reqrepClient_test.go b/reqrepClient_test.go
new file mode 100644
index 0000000..9d5eadd
--- /dev/null
+++ b/reqrepClient_test.go
@@ -0,0 +1,23 @@
+package dbapi
+
+import (
+ "fmt"
+ "testing"
+ "time"
+)
+
+func TestMangosReqClient(t *testing.T){
+ var reqClient1 ReqrepApi
+ var reqClient2 ReqrepApi
+
+ go doRequest(reqClient1, "one")
+ go doRequest(reqClient2, "two")
+ time.Sleep(time.Duration(5)*time.Second)
+}
+
+func doRequest(client ReqrepApi, idx string){
+ for {
+ msg := client.SendRequest(idx)
+ fmt.Printf("receive msg: %s", msg)
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0