it should be reasonably straight-forward to add the ability to specify amqp: as the start of a broker URL, and then have the wmo_mesh demo work with amqp brokers similarly to how it works with mqtt ones. The main changes:
-
need to declare the exchange one is publishing (--post_exchange) to (equivalent to the root of the topic tree.) It needs to have certain properties... durable=true, etc... I would copy whatever Sarracenia does by default, as it is the result of years of tuning.
-
need to declare the queue_name, one can use the mqtt 'client_id' as the queue name...
-
--clean_session in wmo_mesh means essentially deleting the queue and exchange, and then re-creating them. This will clear out all old bindings.
Bindings are stateful in AMQP, and hard to maintain because the protocol allows no means of inspecting them, so the only option for now is the sledgehammer of delete/recreat.
Probably want to add a --exchange option, as the exchange one is subscribing to is currently not settable, and they can be different in practice.
it should be reasonably straight-forward to add the ability to specify amqp: as the start of a broker URL, and then have the wmo_mesh demo work with amqp brokers similarly to how it works with mqtt ones. The main changes:
need to declare the exchange one is publishing (--post_exchange) to (equivalent to the root of the topic tree.) It needs to have certain properties... durable=true, etc... I would copy whatever Sarracenia does by default, as it is the result of years of tuning.
need to declare the queue_name, one can use the mqtt 'client_id' as the queue name...
--clean_session in wmo_mesh means essentially deleting the queue and exchange, and then re-creating them. This will clear out all old bindings.
Bindings are stateful in AMQP, and hard to maintain because the protocol allows no means of inspecting them, so the only option for now is the sledgehammer of delete/recreat.
Probably want to add a --exchange option, as the exchange one is subscribing to is currently not settable, and they can be different in practice.