Platforms to show: All Mac Windows Linux Cross-Platform

/RabbitMQ/amqp_listenq


Required plugins for this example: MBS RabbitMQ Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /RabbitMQ/amqp_listenq

This example is the version from Mon, 14th Mar 2021.

Project "amqp_listenq.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
EventHandler Sub Open() Const hostname = "192.168.2.70" Const port = 5672 Const exchange = "test" Const bindingkey = "test" Const queuename = "test" Dim conn As New RabbitMQConnectionMBS If Not conn.NewTCPSocket Then MsgBox "Failed to create TCP socket" Return End If Dim status As Integer status = conn.OpenSocket(hostname, port) If status <> 0 then MsgBox "Failed to open TCP socket" Return End If Dim r As RabbitMQRPCReplyMBS r = conn.LoginPlain("/", 0, 131072, 0, "test", "test") If Failed(r) Then Return Const channel = 1 Call conn.ChannelOpen(channel) r = conn.RPCReply If Failed(r) Then Return Const consumerTag = "" Const noLocal = False Const noAck = False Const exclusive = False Dim arguments As Dictionary = Nil Dim BasicConsumeResult As Dictionary = conn.BasicConsume(channel, queuename, consumerTag, noLocal, noAck, exclusive, arguments) r = conn.RPCReply If Failed(r) Then Return While True Dim res As RabbitMQRPCReplyMBS dim envelope as RabbitMQEnvelopeMBS res = conn.ConsumeMessage(envelope, 0.01) If res.Type = res.ResponseTypeNormal Then Log "Delivery: "+Str(envelope.DeliveryTag) Log "Exchange: "+envelope.Exchange Log "Routingkey: "+envelope.Routingkey If BitwiseAnd(envelope.message.properties.flags, RabbitMQBasicPropertiesMBS.kFlagType) <> 0 Then Log "Content-type: "+envelope.Message.Properties.ContentType Dim BodyString As String = envelope.Message.Body Log "Body: "+BodyString End If end if app.DoEvents wend r = conn.ConnectionClose If Failed(r) Then Return End EventHandler
Function Failed(r as RabbitMQRPCReplyMBS) As Boolean If r = Nil Then Return True End If Select Case r.Type Case r.ResponseTypeNone Break Case r.ResponseTypeNormal Return False // okay Case r.ResponseTypeLibraryException MsgBox "Library error: "+Str(r.LibraryError)+" "+RabbitMQConnectionMBS.ErrorString(r.LibraryError) Return True Case r.ResponseTypeServerException Dim d As Dictionary = r.MethodDecoded Dim c As String = d.Lookup("ReplyCode", "") Dim t As String = d.Lookup("ReplyText", "") MsgBox "Server error "+c+": "+t If t = "" Then Break Return True end Select End Function
Sub Log(s as string) System.DebugLog s MainWindow.List.AddRow s End Sub
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project

The items on this page are in the following plugins: MBS RabbitMQ Plugin.


The biggest plugin in space...