Вы заявляете, что хотите получать сообщения, в результате требуется по крайней мере bind_receiver
. Поскольку вы не знаете, когда будут поступать сообщения, вам придется постоянно подключаться, а не отключаться после каждого события.
Что касается вашего вопроса о «толкать или тянуть», это зависит от того, как вы решите первую проблему. Если вы сможете создать решение, которое постоянно подключено, результатом будет толчок (оператор доставит его вам, как только получит сообщение). Если (по какой-то причине) вы не можете поддерживать постоянное соединение, вы в конечном итоге создадите механизм вытягивания. Вы будете подключаться к оператору каждые X секунд, чтобы увидеть, есть ли у него сообщение, ожидающее вас.
Мне нужно выделить 2 подводных камня:
- Ряд операторов в мире не хранят и даже не принимают сообщения, если вы не подключены, поэтому, в зависимости от того, с каким оператором вы взаимодействуете, вы можете быть вынуждены использовать непрерывное соединение.
- Большинство операторов не позволяют вам открывать и закрывать соединения в быстрой последовательности. После отключения вы не сможете повторно подключиться в течение периода времени X секунд.
Поэтому постоянное соединение - это действительно путь. Кроме того, вы можете обратиться к такой компании, как Nexmo, которая будет предоставлять вам HTTP-вызов при каждом получении сообщения.
Я не уверен, на каком языке вы разрабатываете свое приложение, но если вы используете какой-либо из популярных языков (Java, PHP, Perl), есть модули, которые обрабатывают базовые возможности подключения SMPP для вас. Быстрый поиск в Google по вашему языку и «Клиент SMPP» предоставит вам список ссылок.