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