Вы заявляете, что хотите получать сообщения, в результате требуется не менее bind_receiver
. Поскольку вы не знаете, когда будут поступать сообщения, вам придется постоянно подключаться, а не отключать их после каждого события.
Что касается вашего вопроса о «push или pull», это зависит от того, как вы решаете первую проблему. Если вы можете построить решение, которое постоянно подключено, результатом будет нажатие (оператор будет нажимать его на вас, как только они получат сообщение). Если (по какой-то причине) вы не можете поддерживать постоянное соединение, в итоге вы создадите механизм pull. Вы будете подключаться к перевозчику каждые X секунд, чтобы узнать, есть ли у вас сообщение, ожидающее вас.
мне нужно выделить 2 подводные камни, хотя:
- Ряд носителей в мире, не хранить или даже принимать сообщения, если вы не подключены, поэтому, в зависимости от несущей вы взаимодействуете с, вы может быть принудительно использовать непрерывное соединение.
- Большинство перевозчиков не позволяют открывать и закрывать соединения в быстрой последовательности. После отключения вы не сможете повторно подключиться в течение X секунд.
Поэтому постоянное соединение - это действительно путь. Кроме того, вы можете заглянуть в компанию, такую как Nexmo, которая будет предоставлять вам HTTP-вызов каждый раз, когда приходит сообщение.
Я не уверен, на каком языке вы разрабатываете свое приложение, но если вы используете какой-либо из популярных языков (Java, PHP, Perl), там есть модули, которые обрабатывают базовое подключение SMPP для вас. Быстрый поиск Google для вашего языка и «SMPP Client» предоставит вам список ссылок.
Для получения информации о том, как Эсме работает с SMSC и связываются и UNBIND операции вы можете проверить здесь http://blog.ektel.com .np/2012/01/sms-messages-between-esme-server-and-smsc-server/ Я надеюсь, что это поможет –