go-dvote/net/net.go
net/net.goRaw
1package net
2
3import (
4 "encoding/json"
5 "fmt"
6 "github.com/vocdoni/dvote-relay/batch"
7 "github.com/vocdoni/dvote-relay/types"
8 "github.com/vocdoni/dvote-relay/data"
9)
10
11
12func Sub(topic string) error {
13 subscription := data.PsSubscribe(topic)
14 fmt.Println("Subscribed > " + topic)
15 for {
16 msg, err := subscription.Next()
17 if err != nil {
18 return err
19 }
20
21 payload := msg.Data()
22
23 var e types.Envelope
24 var b types.Ballot
25
26 err = json.Unmarshal(payload, &e)
27 if err != nil {
28 return err
29 }
30
31 err = json.Unmarshal(e.Ballot, &b)
32 if err != nil {
33 return err
34 }
35
36 err = batch.Add(b)
37 if err != nil {
38 return err
39 }
40
41 fmt.Println("Got > " + string(payload))
42 }
43}