func (smq *SurgeMQ) Send(msgbytes []byte) { msg := message.NewPublishMessage() msg.SetTopic([]byte(smq.subject)) msg.SetPayload(msgbytes) msg.SetQoS(0) smq.client.Publish(msg, nil) }
func pinger() { p = &netx.Pinger{} if err := p.AddIPs(serverIPs); err != nil { log.Fatal(err) } cnt := 0 tick := time.NewTicker(time.Duration(pingInterval) * time.Second) for { if cnt != 0 { <-tick.C } res, err := p.Start() if err != nil { log.Fatal(err) } for pr := range res { if !serverQuiet { log.Println(pr) } // Creates a new PUBLISH message with the appropriate contents for publishing pubmsg := message.NewPublishMessage() if pr.Err != nil { pubmsg.SetTopic([]byte(fmt.Sprintf("/ping/failure/%s", pr.Src))) } else { pubmsg.SetTopic([]byte(fmt.Sprintf("/ping/success/%s", pr.Src))) } pubmsg.SetQoS(0) b, err := pr.GobEncode() if err != nil { log.Printf("pinger: Error from GobEncode: %v\n", err) continue } pubmsg.SetPayload(b) // Publishes to the server s.Publish(pubmsg, nil) } p.Stop() cnt++ } }