mirror of
https://github.com/ebosas/microservices.git
synced 2025-06-06 22:16:11 +02:00
38 lines
820 B
Go
38 lines
820 B
Go
package rabbit
|
|
|
|
import (
|
|
"crypto/tls"
|
|
|
|
"github.com/streadway/amqp"
|
|
)
|
|
|
|
// Conn returns a Rabbit connecton. Also, a channel to be used
|
|
// in the main go routine.
|
|
type Conn struct {
|
|
Connection *amqp.Connection
|
|
Channel *amqp.Channel
|
|
}
|
|
|
|
// GetConn established a Rabbit connection.
|
|
func GetConn(rabbitURL string) (*Conn, error) {
|
|
cfg := new(tls.Config)
|
|
cfg.InsecureSkipVerify = true // avoid error 'certificate signed by unknown authority'
|
|
|
|
conn, err := amqp.DialTLS(rabbitURL, cfg)
|
|
if err != nil {
|
|
return &Conn{}, err
|
|
}
|
|
ch, err := conn.Channel()
|
|
return &Conn{
|
|
Connection: conn,
|
|
Channel: ch,
|
|
}, err
|
|
}
|
|
|
|
// Close closes the Rabbit connection.
|
|
// All resources associated with the connection, including channels,
|
|
// will also be closed.
|
|
func (conn *Conn) Close() error {
|
|
return conn.Connection.Close()
|
|
}
|