Верблюд SMPP - Сервер

Я знаком с Camel-SMPP, и он отлично работает для моих маршрутов потребителей и производителей. Я использую SIM-карту Selenium SMPP, чтобы проверить то же самое.

from uri="smpp://[email protected]:8056?password=password&systemType=consumer"/>

на uri="smpp://smppclient@localhost:2775?password=password&&systemType=producer"/>

Однако я хотел бы, чтобы мой Camel работал как сервер (который принимает SMS от многочисленных клиентов). Мой текущий маршрут «От кого» тесно связан с одним отправителем SMS. Как я могу изменить это как универсальный сервер. Возможно ли это в Camel?


person Joe2013    schedule 09.12.2013    source источник
comment
у вас есть список этих клиентов. я хочу спросить, если у вас есть такой список, прежде чем принять запрос, это может быть достижимо.   -  person Ashish    schedule 15.12.2013
comment
у меня нет списка клиентов   -  person Joe2013    schedule 18.12.2013
comment
у меня есть несколько решений, которыми я могу поделиться, но откуда вы получаете динамических клиентов? запрос, база данных или что?   -  person Anas    schedule 27.04.2020


Ответы (1)


если я правильно понял ваш вопрос, у вас есть:

  • 127.0.0.1:8056 как SMS-клиент
  • localhost:2775 в качестве отправителя SMS

это выглядит так

from:client1 ----> to:sender1

допустим, вы хотите подключить больше клиентов SMS к своему отправителю SMS.

from:client1 -----> to:sender1
from:client2 ----/
from:client3 ---/

Все, что вам нужно сделать, это добавить больше узлов from.

Я думаю, вы используете springish xml файл для настройки Camel. Это означает, что вы делаете это декларативно, а верблюд делает столько, сколько вы объявляете в своем xml-файле. Никаких циклов или чего-то подобного. Итак, буквально вам нужно добавить больше from uri="smpp://[email protected]:8056?password=password&systemType=consumer"/> строк в ваш xml. В противном случае вы можете использовать Java API верблюда для динамической настройки/добавления ваших узлов. Таким образом, вы можете настроить или добавить свои узлы из БД или что-то еще.

Ну, но вы должны добавить как можно больше to uri="smpp://smppclient@localhost:2775?password=password&&systemType=producer"/> узлов, что не совсем то, что мы имели в виду. Чтобы исправить это, мы добавляем между ними узел абстракции. Это будет выглядеть так:

from:client1 -----> direct:sender ----> to:sender1
from:client2 ----/
from:client3 ---/

Итак, ваш код будет:

from uri="smpp://[email protected]:8056?password=password&systemType=consumer"/>
to uri="direct://sender"
from uri="smpp://smppclient2@...."/>
to uri="direct://sender"
from uri="smpp://smppclient3@..."/>
to uri="direct://sender"

from uri="direct://sender"
to uri="smpp://smppclient@localhost:2775?password=password&&systemType=producer"/>

Вы можете рассмотреть возможность использования seda вместо direct, чтобы легко попасть в очередь.

person Milan Baran    schedule 16.12.2013
comment
Как упоминалось в вопросе, у меня нет списка отправителей. как я настрою от - person Joe2013; 18.12.2013
comment
Ах, значит, вы не хотите настраивать всех своих клиентов в Camel и получать все запросы от smppclient. Но вы хотите отправлять запросы от smppclient к общему получателю smpp верблюда. Таким образом, вам не нужно настраивать с узла для каждого клиента. Я прав? - person Milan Baran; 18.12.2013
comment
Вопрос в том, может ли ваш smppclient нажимать или подключаться к вашему универсальному серверу верблюда. Иначе не представляю, как такую ​​штуку настроить. - person Milan Baran; 19.12.2013
comment
Да .. вопрос о верблюде, выступающем в роли сервера. - person Joe2013; 20.12.2013
comment
Вы можете использовать компонент Netty или Mina, чтобы открыть порт для связи. Как я уже сказал, вопрос в том, может ли ваш smppclient подключиться к вашему верблюжьему серверу. Существует также простой способ отправки сообщений на верблюд, который заключается в использовании файлов или JMS. В первом случае ваш smppclient создаст файл в определенной папке, и верблюд будет его использовать. Во втором случае вам понадобится какой-то MQ (ActiveMQ), и smppclient поместит сообщение в очередь, а верблюд будет потреблять эти сообщения из очереди. - person Milan Baran; 20.12.2013