go-dvote/cmd/pssTest/psstest.go
cmd/pssTest/psstest.goRaw
1package main
2
3import (
4 "fmt"
5 "os"
6 "time"
7
8 "github.com/ethereum/go-ethereum/log"
9 swarm "github.com/vocdoni/go-dvote/net/swarm"
10)
11
12func main() {
13 if len(os.Args) < 2 {
14 fmt.Println("Use <sym|asym> <key>")
15 return
16 }
17
18 sn := new(swarm.SwarmNet)
19 err := sn.Init()
20 if err != nil {
21 fmt.Printf("%v\n", err)
22 return
23 }
24 err = sn.SetLog("crit")
25 if err != nil {
26 fmt.Printf("Cannot set loglevel %v\n", err)
27 }
28
29 kind := os.Args[1]
30 topic := "vocdoni_test"
31 key := ""
32
33 if kind == "sym" || kind == "asym" || kind == "raw" {
34 if kind != "raw" {
35 key = os.Args[2]
36 }
37 sn.PssSub(kind, key, topic, "")
38 defer sn.PssTopics[topic].Unregister()
39 } else {
40 fmt.Println("First parameter must be sym or asym")
41 return
42 }
43
44 go func() {
45 for {
46 msg := <-sn.PssTopics[topic].Delivery
47 fmt.Printf("<- Pss received: %s\n", msg)
48 }
49 }()
50
51 hostname, _ := os.Hostname()
52
53 for {
54 fmt.Printf("-> Sending %s pss to [%s]\n", kind, key)
55 currentTime := int64(time.Now().Unix())
56 err := sn.PssPub(kind, key, topic, fmt.Sprintf("Hello world from %s at %d", hostname, currentTime), "")
57 log.Info("pss sent", "err", err)
58 time.Sleep(10 * time.Second)
59 }
60}