Usare RabbitMQ in VB.NET
In questo articolo vediamo come connetterci a RabbitMQ in VB.NET.
Non useremo gli stream in questo caso.
Prima di tutto dovete installare la libreria RabbitMQ.Client e potete farlo da NuGET.
Qui sotto un esempio di codice in facciamo tutto insieme (invio e ricezione) per semplicitià:
Imports System.Text
Imports RabbitMQ.Client
Imports RabbitMQ.Client.Events
Module Program
Sub Main(args As String())
RabbitTask().GetAwaiter().GetResult()
End Sub
Public Async Function RabbitTask() As Task
Dim factory As New ConnectionFactory With {.HostName = "localhost"}
Using connection = Await factory.CreateConnectionAsync()
Using channel = Await connection.CreateChannelAsync()
Dim nomeCoda As String = "vbnet"
' INVIO DATI
Await channel.QueueDeclareAsync(
queue:=nomeCoda,
durable:=False,
exclusive:=False,
autoDelete:=False,
arguments:=Nothing
)
Const message As String = "Hello World!"
Dim body As Byte() = Encoding.UTF8.GetBytes(message)
Await channel.BasicPublishAsync(
exchange:="",
routingKey:=nomeCoda,
body:=body
)
Console.WriteLine($" [x] Inviato {message}")
' RICEZIONE DATI
Console.WriteLine("=======")
Console.WriteLine(" [*] In attesa della ricezione")
Dim consumer = New AsyncEventingBasicConsumer(channel)
AddHandler consumer.ReceivedAsync, Async Function(model, ea)
Dim rcvBody = ea.Body.ToArray()
Dim rcvMessage = Encoding.UTF8.GetString(rcvBody)
Console.WriteLine($" [x] Ricevuto {rcvMessage}")
Return Task.CompletedTask
End Function
Await channel.BasicConsumeAsync(
queue:=nomeCoda,
autoAck:=True,
consumer:=consumer
)
Console.ReadLine()
End Using
End Using
End Function
End Module
Enjoy!
vbnet nuget rabbitmq
Commentami!