42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/joho/godotenv"
|
|
"vnfco.ir/rabbit/fail"
|
|
"vnfco.ir/rabbit/rabbit"
|
|
)
|
|
|
|
func init() {
|
|
err := godotenv.Load(".env")
|
|
fail.FailOnError(err, "Can't Load ENV file")
|
|
}
|
|
|
|
func main() {
|
|
_, channel := rabbit.ConnectToAMPQServerAndCreateChannel(os.Getenv("AMPQ_HOST"), os.Getenv("AMPQ_PORT"), os.Getenv("AMPQ_USERNAME"), os.Getenv("AMPQ_PASSWORD"))
|
|
queueHello := rabbit.CreateOrJoinSimpleQueue(channel, "hi")
|
|
queueReply := rabbit.CreateOrJoinSimpleQueue(channel, "reply")
|
|
msgs := rabbit.Listen(channel, queueHello)
|
|
|
|
forever := make(chan bool)
|
|
|
|
go func() {
|
|
for d := range msgs {
|
|
log.Printf("Received a message: %s with Headers : %s", d.Body, d.Headers)
|
|
BodyMap := map[string]string{
|
|
"title": "Hello baby I love you",
|
|
"body": "I love Your More Than You Ever Think ",
|
|
}
|
|
jsonBody, err := json.Marshal(BodyMap)
|
|
fail.FailOnError(err, "Can Not Stringify Map")
|
|
rabbit.Publish(channel, queueReply, string(jsonBody), "application/json")
|
|
}
|
|
}()
|
|
|
|
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
|
|
<-forever
|
|
}
|