ServerSentEventsServer/modules/rabbitmq/rabbitmq.go

55 lines
1.3 KiB
Go

package rabbitmq
import (
"time"
"clickandjoin.app/serversenteventsserver/modules/config"
gorabbitmqclient "git.clickandjoin.umbach.dev/ClickandJoin/go-rabbitmq-client"
)
const exchangeBroadcastMessages = "cnj.api.broadcast.messages"
var ApiBroadcastClient *gorabbitmqclient.Client
func Init() {
cfg := config.Cfg
/*
* api broadcast messages
*/
ApiBroadcastClient = gorabbitmqclient.NewClient(
cfg.Debug,
gorabbitmqclient.ExchangeSettings{},
gorabbitmqclient.QueueSettings{
Name: "",
Durable: false,
DeleteWhenUnused: false,
Exclusive: true,
NoWait: false,
Arguments: nil,
QueueBindSettings: gorabbitmqclient.QueueBindSettings{
Enabled: true,
QueueName: gorabbitmqclient.SetQueueNameToAutomaticallyAssignedQueueName,
RoutingKey: "",
Exchange: exchangeBroadcastMessages,
NoWait: false,
Arguments: nil,
},
},
gorabbitmqclient.ChannelQosSettingsDefault,
gorabbitmqclient.Config{
ReconnectDelay: 1 * time.Second,
ReInitDelay: 1 * time.Second,
ResendDelay: 5 * time.Second,
},
gorabbitmqclient.GetConnectionString(
cfg.RabbitMq.Username,
cfg.RabbitMq.Password,
cfg.RabbitMq.Host))
// give the connection sometime to setup
<-time.After(time.Second)
go ApiBroadcastMessagesHandling()
}