Im currently trying to implement support for AMQP into a .Net library. However, I cant quite figure out which schema to use when running AMQP and SSL. From Googling it I see that there are two schemas that are suggested from time to time: amqps://
and amqp ssl://
. However, looking at the Apache.NMS implementation of the NMSConnectionFactory
, not any of those two schemas would match against the connectionfactory mappings.
The map is located at line 58-77, and it's used at line 308.
As you might notice neither amqps
nor amqp ssl
are listed in the mapping-object. So how would one use SSL and AMQP while using Apache.NMS?
CodePudding user response:
It's worth noting that the AMQP implementation for NMS is built on top of AMQP.NET Lite. The URL configuration documentation states:
The basic format of the clients Connection URI is as follows:
amqp[s]://hostname:port[?option=value[&option2=value...]]
Where the
amqps
and scheme is specified to use SSL/TLS.
A simple example is available here. Notice that the example uses the NmsConnectionFactory
implementation from Apache.NMS.AMQP
and not the one from Apache.NMS
. I recommend you do the same.
Apache.NMS
is, after all, an API. It really shouldn't have its own implementation of NmsConnectionFactory
as it needs to be updated every time a new implementation is created. In my opinion this is a backwards design which is confusing for users.