From 383557064fd77c028fd71facf8ec1cf6b278d3e6 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 30 八月 2019 09:39:08 +0800
Subject: [PATCH] add send msg param

---
 nng.go |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/nng.go b/nng.go
index 751feac..032d929 100644
--- a/nng.go
+++ b/nng.go
@@ -28,11 +28,16 @@
 	mode Mode
 	url  string
 
+	sendMsg *mangos.Message
+
 	arguments []interface{}
 }
 
 // Send impl interface Diliver
 func (n *NNG) Send(data []byte) error {
+	if n == nil {
+		return errors.New("please init NNG first")
+	}
 	var err error
 	if n.sock == nil {
 		n.sock, err = n.makeNNG(agent)
@@ -46,14 +51,25 @@
 		time.Sleep(time.Duration(surveyorTime*2) * time.Second)
 	}
 
-	msg := mangos.NewMessage(len(data))
-	msg.Body = data
-	return n.sock.SendMsg(msg)
+	// msg := mangos.NewMessage(len(data))
+	// msg.Body = data
+	// return n.sock.SendMsg(msg)
+
+	if n.sendMsg == nil {
+		n.sendMsg = &mangos.Message{}
+		n.sendMsg.Header = make([]byte, 32)
+	}
+	n.sendMsg.Body = data
+	return n.sock.SendMsg(n.sendMsg)
 
 }
 
 // Recv impl interface Diliver
 func (n *NNG) Recv() ([]byte, error) {
+	if n == nil {
+		return nil, errors.New("please init NNG first")
+	}
+
 	var err error
 
 	if n.sock == nil {
@@ -72,9 +88,16 @@
 
 }
 
+// Recv2 impl interface
+func (n *NNG) Recv2(data []byte) (l int, err error) {
+	data, err = n.Recv()
+	l = len(data)
+	return l, err
+}
+
 // Close impl interface Deliver
 func (n *NNG) Close() {
-	if n.sock != nil {
+	if n != nil && n.sock != nil {
 		n.sock.Close()
 		n.sock = nil
 	}
@@ -120,7 +143,7 @@
 	switch n.mode {
 	case Bus:
 		sock, err = n.busMakeNNG(typ)
-	case ReqRep:
+	case ReqRep, SurvResp:
 		sock, err = n.rrMakeNNG(typ)
 	default:
 		sock, err = n.ppMakeNNG(typ)

--
Gitblit v1.8.0