# README
Golang AMQP RPC Client
Features:
- Protocol agnostic RPC Client over AMQP.
- Can simultaneity talk to multiple servers.
- Call cancellation.
- Buffer multiple replies in a channel.
- Separate publisher\consumer connections.
- Multiple consumer workers.
- Auto reconnect.
- Client close method wait for calls inflight to finish.
Example:
package main
import (
"log"
"time"
"github.com/makasim/amqpextra"
"github.com/makasim/amqprpc"
"github.com/streadway/amqp"
)
func main() {
consumerConn := amqpextra.Dial([]string{"amqp://guest:guest@rabbitmq:5672/amqprpc"})
publisherConn := amqpextra.Dial([]string{"amqp://guest:guest@rabbitmq:5672/amqprpc"})
client, err := amqprpc.New(publisherConn, consumerConn)
if err != nil {
log.Fatal(err)
}
defer client.Close()
call := client.Go(amqpextra.Publishing{
Key: "a_queue",
Message: amqp.Publishing{
Body: []byte(`Have you heard the news?`),
},
}, make(chan *amqprpc.Call, 1))
defer call.Close()
select {
case <-call.Done():
rpl, err := call.Delivery()
if err != nil {
log.Fatal(err)
return
}
log.Print(string(rpl.Body))
case <-time.NewTimer(time.Second).C:
// timeout
}
}
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author