From b9cf4660f85b3457763de72781bc7bc84411f5de Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期五, 30 八月 2019 16:26:45 +0800
Subject: [PATCH] reflect every time get
---
nng.go | 41 +++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/nng.go b/nng.go
index 1e9c1c0..b9eb8c2 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)
--
Gitblit v1.8.0