github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/mq/mqtt/examples/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"time"
     6  
     7  	"github.com/sereiner/library/mq"
     8  	"github.com/sereiner/library/mq/mqtt"
     9  	pmqtt "github.com/sereiner/library/queue/mqtt"
    10  )
    11  
    12  func main() {
    13  
    14  	consumer, err := mqtt.NewConsumer("", mq.WithRaw(`
    15  	{
    16  				"proto":"mqtt",
    17  				"address":"222.209.84.37:11883",
    18  				"userName":"mosquittouser",
    19  				"password":"abc123$"
    20  		}
    21  	`))
    22  	if err != nil {
    23  		fmt.Println("consumer.err:", err)
    24  		return
    25  	}
    26  
    27  	if err := consumer.Connect(); err != nil {
    28  		fmt.Println("connect.err:", err)
    29  		return
    30  	}
    31  
    32  	consumer.Consume("device.request1", 1, func(m mq.IMessage) {
    33  		fmt.Println("recv:", m.GetMessage())
    34  	})
    35  	fmt.Println("success")
    36  
    37  	time.Sleep(time.Second)
    38  	publisher, err := pmqtt.New([]string{}, `{
    39  				"proto":"mqtt",
    40  				"address":"222.209.84.37:11883",
    41  				"userName":"mosquittouser",
    42  				"password":"abc123$"
    43  		}`)
    44  	if err != nil {
    45  		fmt.Println("publisher.err:", err)
    46  		return
    47  	}
    48  	for {
    49  		fmt.Println("send.message:abc")
    50  		err = publisher.Push("device.request1", `abc`)
    51  		if err != nil {
    52  			fmt.Println("push.err:", err)
    53  		}
    54  		time.Sleep(time.Second * 2)
    55  	}
    56  
    57  	time.Sleep(time.Hour)
    58  
    59  }
    60  
    61  // func main() {
    62  // 	cc := client.New(&client.Options{
    63  // 		ErrorHandler: func(err error) {
    64  // 			fmt.Println("err:", err)
    65  // 		},
    66  // 	})
    67  
    68  // 	if err := cc.Connect(&client.ConnectOptions{
    69  // 		Network:   "tcp",
    70  // 		Address:   "222.209.84.37:11883",
    71  // 		UserName:  []byte("mosquittouser"),
    72  // 		Password:  []byte("abc123$"),
    73  // 		ClientID:  []byte("hydra-client5665"),
    74  // 		KeepAlive: 3,
    75  // 	}); err != nil {
    76  // 		fmt.Println("err1:", err)
    77  // 	}
    78  // 	fmt.Println("conn.success")
    79  
    80  // 	err := cc.Subscribe(&client.SubscribeOptions{
    81  // 		SubReqs: []*client.SubReq{
    82  // 			&client.SubReq{
    83  // 				TopicFilter: []byte("device.request1"),
    84  // 				QoS:         mqtt.QoS0,
    85  // 				Handler: func(topicName, message []byte) {
    86  // 					fmt.Println("recv:", string(topicName), string(message))
    87  // 				},
    88  // 			},
    89  // 		},
    90  // 	})
    91  // 	if err != nil {
    92  // 		fmt.Println(err)
    93  // 	}
    94  
    95  // 	//----------------------publisher------------
    96  // 	cc1 := client.New(&client.Options{
    97  // 		ErrorHandler: func(err error) {
    98  // 			fmt.Println("err:", err)
    99  // 		},
   100  // 	})
   101  
   102  // 	if err := cc1.Connect(&client.ConnectOptions{
   103  // 		Network: "tcp",
   104  // 		Address: "222.209.84.37:11883",
   105  // 		//UserName:  []byte("mosquittouser"),
   106  // 		//Password:  []byte("abc123$"),
   107  // 		ClientID:  []byte("hydra-client2222"),
   108  // 		KeepAlive: 3,
   109  // 	}); err != nil {
   110  // 		fmt.Println("err1:", err)
   111  // 	}
   112  
   113  // 	for {
   114  // 		err = cc1.Publish(&client.PublishOptions{
   115  // 			QoS:       mqtt.QoS0,
   116  // 			TopicName: []byte("device.request1"),
   117  // 			Message:   []byte(`{"id":100}`),
   118  // 		})
   119  // 		if err != nil {
   120  // 			fmt.Println("send.err:", err)
   121  // 		}
   122  // 		time.Sleep(time.Second)
   123  
   124  // 	}
   125  
   126  // 	time.Sleep(time.Second * 100000)
   127  // 	fmt.Println("sub.success")
   128  
   129  // }