9

SMPP インターフェイスのみを提供する特定のモバイル オペレーターを介してメッセージを送受信する必要があるプロジェクトが近づいています。プロジェクト全体がホストされた Web サイトになります。私はすでにかなり多くのことを読んできましたが、プロトコルを使用するために自分の側で実際に何が必要かをまだよく理解していません.

アプリケーションは smpp への常時接続を維持する必要がありますか? 単純に接続してメッセージを送信してから切断することはできますか?

プッシュまたはプルに基づいてメッセージを受信して​​いますか?

助けてくれてありがとう。

4

2 に答える 2

8

SMPP はピアツーピア プロトコルです。これは、SMS ゲートウェイ (ユーザー側) と SMSC (携帯電話会社) が適切なバインド/接続を確立する必要があることを意味します。送受信する SMS または DLR がない場合でも、バインドが確立されていることを確認する smpp PDU (enquire_link/enquire-link_resp) の継続的な交換があります。具体的には、enquire_link PDU を送信して応答がない場合 (enquire_link_resp)、バインドが壊れています。SMS は配信されず (ゲートウェイ ストアにエンキューされたままになります)、MO (受信 SMS) または DLR (配信レポート) も受信しません。接続を再確立するには、接続を再開する必要があります。

したがって、私の答えは、SMSC への常時接続が必要だということです。

于 2013-06-30T11:21:17.020 に答える
4

メッセージを受信したいと言っているので、少なくともbind_receiverが必要です。メッセージがいつ届くかわからないため、イベントごとに切断するのではなく、常に接続している必要があります。

「プッシュまたはプル」に関する質問に関しては、最初の問題をどのように解決するかによって異なります。常に接続されているソリューションを構築できれば、結果はプッシュになります (キャリアはメッセージを受信するとすぐにプッシュします)。(何らかの理由で) 一定の接続を維持できない場合、プル メカニズムを構築することになります。通信事業者に X 秒ごとに接続して、あなたを待っているメッセージがあるかどうかを確認します。

ただし、2 つの落とし穴を強調する必要があります。

  1. 世界の多くの通信事業者は、接続されていない場合、メッセージを保存したり、受信したりしません。したがって、通信する通信事業者によっては、継続的な接続を使用する必要がある場合があります。
  2. ほとんどのキャリアでは、接続をすばやく連続して開いたり閉じたりすることはできません。切断すると、X 秒間は再接続できません。

したがって、常に接続することが実際に進むべき道です。または、メッセージが到着するたびに HTTP 呼び出しを提供する Nexmo などの会社を調べることもできます。

アプリケーションの開発にどの言語を使用しているかはわかりませんが、一般的な言語 (Java、PHP、Perl) を使用している場合は、基本的な SMPP 接続を処理するモジュールが用意されています。お使いの言語と「SMPP クライアント」を Google ですばやく検索すると、参考文献のリストが表示されます。

于 2011-06-03T17:32:58.890 に答える