Categorygithub.com/thinc-org/newbie-rabbitmqsdk
modulepackage
1.0.3
Repository: https://github.com/thinc-org/newbie-rabbitmqsdk.git
Documentation: pkg.go.dev

# README

About RabbitMQ

RabbitMQ SDK is the complete utils function for implement the publisher and subscriber

Getting Start

Connection

RabbitMQ

return *amqp.Connection when successfully

rabbitMQConn, err := gosdk.InitRabbitMQConnection(RabbitMQConfig)
if err != nil {
    // handle error
}

Parameters

namedescription
RabbitMQ ConfigRabbitMQ config

Configuration

type RabbitMQConfig struct {
   Host  string `mapstructure:"host"`
   VHost string `mapstructure:"vhost"`
}
namedescriptionexample
HostThe host of the rabbitmq in format amqp://username:password@hostname:port/amqp://guest:guest@localhost:5672/
VHostThe virtual host name (default is /)

Initialization

rabbitmq, err := rabbitmqsdk.NewRabbitMQ(RabbitMQClient)

Configuration

Parameters

namedescription
RabbitMQ Clientthe client of the rabbitmq

Usage

Close

Close the rabbitmq channel connection

if err := rabbitmq.Close(); err != nil {
    // handle error
}

Publish

Publish the massage to RabbitMQ

if err := rabbitmq.Publish(exchangeName, key, message); err != nil {
    // handle error
}

Parameters

namedescriptionexample
exchangeNamethe name of exchange that will publish the message toexchange-1
keythe binding key to queuecufreelance.service.action.status
messageraw data in any type

Create Exchange

Create exchange connection

if err := rabbitmq.CreateExchange(
	name, 
	kind, 
	durable, 
	autoDelete, 
	internal, 
	noWait, 
	args
); err != nil {
    // handle error
}

Parameters

namedescriptionexample
namethe name of exchangeexchange-1
kindthe kind of exchangetopic
durableflag durable (true/false)true
autoDeleteflag auto delete (true/false)false
internalflag internal (true/false)false
noWaitflag no wait (true/false)false
argsmore arguments in map[string]interface{}

Create Queue

Create the queue connection for subscriber

queue, err := rabbitmq.CreateQueue(
	name, 
	durable, 
	autoDelete, 
	exclusive, 
	noWait, 
	args
)

if err != nil {
    // handle error
}

Parameters

namedescriptionexample
namename of queuequeue-1
durableflag durable (true/false)true
autoDeleteflag auto delete (true/false)false
exclusiveflag exclusive (true/false)false
noWaitflag no wait (true/false)false
argsmore arguments in map[string]interface{}

Bind Queue With Exchange

Bind subscriber's queue with exchange

if err := rabbitmq.BindQueueWithExchange(
	queueName, 
	key, 
	exchangeName, 
	noWait, 
	args
); err != nil {
    // handle error
}

Parameters

namedescriptionexample
queueNamethe name of queuequeue-1
keythe binding keycufreelance.service.action.status
exchangeNamethe name of exchangeexchange-1
noWaitflag no wait (true/false)false
argsmore arguments in map[string]interface{}

Create Message Channel

Create message channel for subscriber

if err := rabbitmq.CreateMessageChannel(
	queueName, 
	consumerName,
	autoAck,
    exclusive, 
    noLocal, 
	noWait, 
	args
); err != nil {
    // handle error
}

Parameters

namedescriptionexample
queueNamethe name of queuequeue-1
consumerNamethe name of consumerconsumer-1
autoAckflag auto acknowledge (true/false)true
exclusiveflag exclusive (true/false)false
noLocalflag no local (true/false)false
noWaitflag no wait (true/false)false
argsmore arguments in map[string]interface{}

Listen

Create message channel for subscriber

raw, err := rabbitmq.Listen()
if err != nil {
    // handle error
}

Return

namedescriptionexample
rawthe raw data that return from message channel in []byte (use json.Unmarshal to decode to struct)

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author

# Interfaces

No description provided by the author