Skip to content

pmoura-dev/gobroker

Repository files navigation

GoBroker

Small library to interact with brokers.

Implemented brokers:

  • RabbitMQ

Installation

go get github.com/pmoura-dev/gobroker@v0.0.2

How to use

package main

import (
	"fmt"
	"log"

	"github.com/pmoura-dev/gobroker"
	"github.com/pmoura-dev/gobroker/brokers"
	"github.com/pmoura-dev/gobroker/middleware"
)

func fooHandler(ctx gobroker.ConsumerContext, message gobroker.Message) error {
	param := ctx.Params["foo"].(string)

	fmt.Println("Message received, here is your parameter:", param)
	fmt.Println("Body:", string(message.GetBody()))

	return nil
}

func main() {

	b := brokers.NewRabbitMQBroker()
	b.AddExchange("foo.exchange")
	b.AddQueue("foo.queue").Bind("foo.exchange", "foo.key")

	s := gobroker.NewServer(b)

	s.Use(middleware.Logging)

	s.AddConsumer("foo.queue", fooHandler).AddParam("foo", "bar")

	if err := s.Run("amqp://guest:guest@localhost:5672"); err != nil {
		log.Fatal("error")
	}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages