Строка подключения AMQP к активному MQ с использованием Elixir

#amqp #elixir #qpid #erlang-shell

#amqp #elixir #qpid #erlang-оболочка

Вопрос:

я использую ActiveMQ в качестве посредника сообщений и использовал библиотеку Qpid proton c для подключения к Erlang для службы обмена сообщениями и, похоже, хорошо работает с приведенными ниже командами при запущенном ActiveMQ.

 qpidpn:subscribe("amqp://127.0.0.1/topic://destination").
qpidpn:publish(#{address => "amqp://127.0.0.1/topic://destination", body => "hello"}).
flush().
qpidpn:stop().
q().
 

Мне нужно написать модуль в elixir для подключения к брокеру ActiveMQ так же, как это сделано в erlang выше.
Хотя Erlang подключен к службе посредника сообщений с использованием библиотеки qpid. Пожалуйста, предложите.

Ответ №1:

Я не пробовал приведенный ниже код, но вызов библиотеки Erlang из Elixir довольно тривиален.

Попробуйте это:

 :qpidpn.subscribe("amqp://127.0.0.1/topic://destination")
:qpidpn.publish(%{:address => "amqp://127.0.0.1/topic://destination", :body => "hello"})
:flush()
:qpidpn.stop()
:q()
 

Как я уже сказал, я не пробовал (и не могу, потому что у меня не установлены amqp или qpidn), но это может быть похоже на то, что вы ищете.

Комментарии:

1. flush() и q() доступны только в оболочке Erlang. Они не должны быть нужны в модуле, который OP хочет записать.