From 9e1301abf98fb4e04fabba535c1bb5ad161a66a4 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 15 五月 2019 12:24:02 +0800
Subject: [PATCH] add surveyor
---
nng.go | 30 ++++++++++++++++++++++++++----
1 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/nng.go b/nng.go
index 84d3699..01539a3 100644
--- a/nng.go
+++ b/nng.go
@@ -5,6 +5,7 @@
"fmt"
"os"
"strings"
+ "time"
"nanomsg.org/go-mangos"
"nanomsg.org/go-mangos/protocol/bus"
@@ -31,11 +32,17 @@
return errors.New("please init NNG first")
}
+ switch n.sock.GetProtocol().Number() {
+ case mangos.ProtoSurveyor:
+ time.Sleep(surveyorTime * 2)
+ default:
+ }
if _, err := n.sock.GetOption(mangos.OptionRaw); err == nil {
msg := mangos.NewMessage(len(data))
msg.Body = data
return n.sock.SendMsg(msg)
}
+
return n.sock.Send(data)
}
@@ -92,12 +99,15 @@
return nil
}
-// MaxRecvSize max recv size
-var MaxRecvSize = 33 * 1024 * 1024
+// maxRecvSize max recv size
+var (
+ maxRecvSize = 33 * 1024 * 1024
+ surveyorTime = time.Second / 2
+)
func defualtSocketOptions(sock mangos.Socket) error {
var err error
- if err = sock.SetOption(mangos.OptionMaxRecvSize, MaxRecvSize); err != nil {
+ if err = sock.SetOption(mangos.OptionMaxRecvSize, maxRecvSize); err != nil {
sock.Close()
return err
}
@@ -127,7 +137,8 @@
if err != nil {
return err
}
- if sock.GetProtocol().Number() == mangos.ProtoSub {
+ switch sock.GetProtocol().Number() {
+ case mangos.ProtoSub:
for _, arg := range args {
switch arg.(type) {
case string:
@@ -136,6 +147,17 @@
err = sock.SetOption(mangos.OptionSubscribe, []byte(""))
}
}
+ case mangos.ProtoSurveyor:
+ for _, arg := range args {
+ switch arg.(type) {
+ case int:
+ surveyorTime = time.Duration(arg.(int)/2) * time.Second
+ default:
+ }
+ err = sock.SetOption(mangos.OptionSurveyTime, surveyorTime)
+ }
+ default:
+ fmt.Println("no additional args")
}
return nil
--
Gitblit v1.8.0