func client(cmd *cobra.Command, args []string) { // Instantiates a new Client c = &service.Client{} // Creates a new MQTT CONNECT message and sets the proper parameters msg := message.NewConnectMessage() msg.SetVersion(4) msg.SetCleanSession(true) msg.SetClientId([]byte(fmt.Sprintf("pingmqclient%d%d", os.Getpid(), time.Now().Unix()))) msg.SetKeepAlive(300) // Connects to the remote server at 127.0.0.1 port 1883 if err := c.Connect(clientURI, msg); err != nil { log.Fatal(err) } // Creates a new SUBSCRIBE message to subscribe to topic "abc" submsg := message.NewSubscribeMessage() for _, t := range clientTopics { submsg.AddTopic([]byte(t), 0) } c.Subscribe(submsg, nil, onPublish) <-done }
func (smq *SurgeMQ) Setup() { msg := message.NewSubscribeMessage() msg.SetPacketId(1) msg.AddTopic([]byte(smq.subject), 0) smq.client.Subscribe(msg, nil, func(msg *message.PublishMessage) error { smq.handler.ReceiveMessage(msg.Payload()) return nil }) }