package rabbitmq import ( "errors" "log" "github.com/streadway/amqp" ) var Conn *amqp.Connection var Chan *amqp.Channel func Connect(host, port, username, pwd, vhost string) error { log.Println("RabbitMQ connecting...") var err error if username != "" && pwd != "" && host != "" && port != "" { if vhost == "" { vhost = "/" } Conn, err = amqp.Dial("amqp://" + username + ":" + pwd + "@" + host + ":" + port + "/" + vhost) if err != nil { log.Println("ERROR", "Failed to connect to RabbitMQ", err) } else { log.Println("RabbitMQ has connected") } // defer conn.Close() } else { log.Println("ERROR", "RabbitMQ connection params errors") err = errors.New("RabbitMQ connection params errors") } return err } func Channel() error { var err error Chan, err = Conn.Channel() if err != nil { log.Println("ERROR", "Failed to open a channel") } else { log.Println("open a channel") } // defer ch.Close() return err } func CloseChannel() error { err := Chan.Close() if err == nil { log.Println("RabbitMQ channel closed") } return err } func CloseConn() error { err := Conn.Close() if err == nil { log.Println("RabbitMQ connection closed") } return err }