50 lines
		
	
	
		
			883 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			883 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"log"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/micro/go-micro/broker"
 | 
						|
	"github.com/micro/go-micro/cmd"
 | 
						|
	// To enable rabbitmq plugin uncomment
 | 
						|
	//_ "github.com/micro/go-plugins/broker/rabbitmq"
 | 
						|
)
 | 
						|
 | 
						|
var (
 | 
						|
	topic = "go.micro.topic.foo"
 | 
						|
)
 | 
						|
 | 
						|
func pub() {
 | 
						|
	tick := time.NewTicker(time.Second)
 | 
						|
	i := 0
 | 
						|
	for _ = range tick.C {
 | 
						|
		msg := &broker.Message{
 | 
						|
			Header: map[string]string{
 | 
						|
				"id": fmt.Sprintf("%d", i),
 | 
						|
			},
 | 
						|
			Body: []byte(fmt.Sprintf("%d: %s", i, time.Now().String())),
 | 
						|
		}
 | 
						|
		if err := broker.Publish(topic, msg); err != nil {
 | 
						|
			log.Printf("[pub] failed: %v", err)
 | 
						|
		} else {
 | 
						|
			fmt.Println("[pub] pubbed message:", string(msg.Body))
 | 
						|
		}
 | 
						|
		i++
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func main() {
 | 
						|
	cmd.Init()
 | 
						|
 | 
						|
	if err := broker.Init(); err != nil {
 | 
						|
		log.Fatalf("Broker Init error: %v", err)
 | 
						|
	}
 | 
						|
 | 
						|
	if err := broker.Connect(); err != nil {
 | 
						|
		log.Fatalf("Broker Connect error: %v", err)
 | 
						|
	}
 | 
						|
 | 
						|
	pub()
 | 
						|
}
 |