2016-06-20 13 views
1

私はDelphi XE8を使用してモバイルアプリケーションを開発しています。また、Delphi XE8を使用してSOAPサービスを作成しました。私は組織の内部モバイルアプリを開発しています。組織の内部サーバーにWebサービスサーバーをインストールします。モバイルアプリはそのウェブサービスサーバーと通信します。 WebサービスサーバーはSOAPサービスを公開します。例えばhttp://192.168.1.125:16645です。モバイルアプリをsoapウェブサービスサーバーと通信する方法ipアドレスとポート番号

すべての組織でこの変更が行われるため、モバイルアプリケーションはサーバーと通信するためにこのURLを設定する必要があります。

このような設定をモバイルアプリユーザーに提供したくありません。この種のURLでこれを自動化するにはどうすればいいですか?

どのドメインの物件ですか?

+0

自動的にするには、アプリにどのサーバーを使用するかをアプリに伝えるために、アプリ内に(またはアプリデータ内の、たとえばiniファイルなど)何かがある必要があります。それ以外の場合は自動化できません。これは、サーバのIP /ポートと同じものかもしれません。 – Dsm

+0

https://en.wikipedia.org/wiki/WS-Discovery –

+0

@TOndrej私は作家が望んでいるとは思っていません。そうでなければ、アプリテザリングは適切でしょう。アプリケーションテザリング(と実際に発見)の問題は、リモートIPアドレスが何らかの形でなければ、ローカルでしか動作しないということです。 – Dsm

答えて

0

ActiveMQなどのサーバー実装では、UDPを使用して独自のサーバー名をブロードキャストするため、クライアントが自動的にサーバーの名前を見つけることができます。

関連する質問は、Discover a running ActiveMQ message broker using IP multicastを参照してください。herehereという私のブログ記事(ソースコード付き) IndyはDelphiモバイルコンパイラで使用できるので、このコードはあなたのアプリケーションで動作するはずです。

UDPにネットワーク制限がない限り、サーバーで同じロジックを実装できます。

+0

まず、複数のサーバーがあります(理解しています)。サーバーの名前が必要な場合は、DNSアドレスまたはIPアドレスを使用することもできます。第2に、アプリケーションのテザリングと同じUDPの制限が適用されるため、これがうまくいくならば、深い理解を必要とせず実装が簡単なアプリケーションテザリングを使用することもできます。 – Dsm

+0

@Dsm私が「モバイルアプリユーザーにこのような設定をしたくない」と私が理解しているように、アプリは最初に実行されたときにIPアドレス/ DNS名に無関係でなければなりません。したがって、UDPブロードキャストは、Rendezvous/Bonjourと同様の典型的な使用例です。 – mjn

+0

「すべての組織でこれが変更されるため、モバイルアプリはサーバーと通信するためにこのURLを設定する必要があります。私はそれを否定します。 – Dsm

関連する問題