package main import ( "fmt" "log" "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" ) // Example of a shared subscription which receives a subset of messages func sharedSub() { _, err := broker.Subscribe(topic, func(p broker.Publication) error { fmt.Println("[sub] received message:", string(p.Message().Body), "header", p.Message().Header) return nil }, broker.QueueName("consumer")) if err != nil { fmt.Println(err) } } // Example of a subscription which receives all the messages func sub() { _, err := broker.Subscribe(topic, func(p broker.Publication) error { fmt.Println("[sub] received message:", string(p.Message().Body), "header", p.Message().Header) return nil }) if err != nil { fmt.Println(err) } } 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) } sub() select {} }