From 2d390df9ede39c9d7c34bd8190b9329cfc371325 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 27 九月 2019 16:19:05 +0800
Subject: [PATCH] remove exist ipc

---
 nng.go |   43 +++++++++++++++++++++++++------------------
 1 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/nng.go b/nng.go
index 1e9c1c0..812cc37 100644
--- a/nng.go
+++ b/nng.go
@@ -21,26 +21,21 @@
 	"nanomsg.org/go-mangos/transport/all"
 )
 
-// type deliver
-type td int
-
-const (
-	agent = td(iota)
-	coactee
-)
-
 // NNG mangos wrap
 type NNG struct {
-	sock   mangos.Socket
-	server bool
-	mode   Mode
-	url    string
+	sock mangos.Socket
+	typ  td
+	mode Mode
+	url  string
 
 	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)
@@ -54,14 +49,17 @@
 		time.Sleep(time.Duration(surveyorTime*2) * time.Second)
 	}
 
-	msg := mangos.NewMessage(len(data))
+	msg := mangos.NewMessage(1)
 	msg.Body = data
 	return n.sock.SendMsg(msg)
-
 }
 
 // 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 {
@@ -80,9 +78,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
 	}
@@ -93,7 +98,7 @@
 	rmExistedIpcName(url)
 
 	return &NNG{
-		server:    true,
+		typ:       agent,
 		mode:      m,
 		url:       url,
 		arguments: args,
@@ -103,7 +108,7 @@
 func nngClient(m Mode, url string, args ...interface{}) *NNG {
 
 	return &NNG{
-		server:    false,
+		typ:       coactee,
 		mode:      m,
 		url:       url,
 		arguments: args,
@@ -128,7 +133,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)
@@ -143,6 +148,8 @@
 	if s[0] == "ipc" {
 		if _, err := os.Stat(s[1]); err == nil {
 			os.Remove(s[1])
+		} else if !os.IsNotExist(err) {
+			os.Remove(s[1])
 		}
 	}
 }

--
Gitblit v1.8.0