From 30ddb8de1ca12e4dc31db2a82e36f7429ee2d7c6 Mon Sep 17 00:00:00 2001 From: 龙赣华 <slongertian@gmail.com> Date: 星期六, 01 六月 2019 17:50:03 +0800 Subject: [PATCH] modify string to []byte --- server.go | 33 ++++++++++++++------------------- 1 files changed, 14 insertions(+), 19 deletions(-) diff --git a/server.go b/server.go index 50eaa37..fcd8207 100644 --- a/server.go +++ b/server.go @@ -1,9 +1,7 @@ package gopherdiscovery import ( - "fmt" "log" - "strings" "time" "golang.org/x/net/context" @@ -20,7 +18,7 @@ // responses SurveyTime time.Duration // RecvDeadline is the time until the next recived of the SURVEY times out. - RecvDeadline time.Duration + //RecvDeadline time.Duration // PollTime is minimal time between SURVEYS (The time between SURVEYS could be greater than this time // if the SURVEY process takes longer than that time) PollTime time.Duration @@ -60,7 +58,7 @@ ctx context.Context sock mangos.Socket - publishCh chan []string + publishCh chan []byte } func Server(urlServer string, urlPubSub string, opt Options) (*DiscoveryServer, error) { @@ -86,10 +84,10 @@ if err != nil { return nil, err } - err = sock.SetOption(mangos.OptionRecvDeadline, opt.RecvDeadline) - if err != nil { - return nil, err - } + //err = sock.SetOption(mangos.OptionRecvDeadline, opt.RecvDeadline) + //if err != nil { + // return nil, err + //} pubCtx, pubCancel := context.WithCancel(ctx) publisher, err = NewPublisher(pubCtx, urlPubSub) @@ -141,7 +139,7 @@ var msg []byte var responses StringSet - err = d.sock.Send([]byte("")) + err = d.sock.Send([]byte("are you ok?")) if err != nil { log.Println("DiscoveryServer: Error sending the SURVEY", err.Error()) return @@ -150,15 +148,12 @@ responses = NewStringSet() for { msg, err = d.sock.Recv() - fmt.Println("DiscoveryServer.Recv->err:",err) if err != nil { - if err == mangos.ErrRecvTimeout { + if err == mangos.ErrProtoState { // Timeout means I can add the current responses to the SET d.services.Add(responses) return } - //fmt.Println(" err: ",err.Error()) - //log.Println("DiscoveryServer: Error reading SURVEY responses", err.Error()) } else { responses.Add(string(msg)) } @@ -186,14 +181,14 @@ url: url, sock: sock, - publishCh: make(chan []string), + publishCh: make(chan []byte), } go publiser.run() return publiser, nil } -func (p *Publisher) Publish(msg []string) { +func (p *Publisher) Publish(msg []byte) { p.publishCh <- msg } @@ -204,7 +199,7 @@ close(p.publishCh) return case msg := <-p.publishCh: - err := p.sock.Send([]byte(strings.Join(msg, "|"))) + err := p.sock.Send(msg) if err != nil { log.Println("DiscoveryServer: Error PUBLISHING changes to the socket", err.Error()) } @@ -235,6 +230,6 @@ //s.publisher.Publish(s.nodes.ToSlice())//publish nodes changed } -func (d *DiscoveryServer) PublishMsg(msg string){ - d.services.publisher.Publish([]string{msg}) -} \ No newline at end of file +func (d *DiscoveryServer) PublishMsg(msg string) { + d.services.publisher.Publish([]byte(msg)) +} -- Gitblit v1.8.0