2016-06-20 5 views
1

Ich entwickle mobile apps mit Delphi XE8. Und ich habe auch einen Webservice Server mit Delphi XE8 erstellt. Ich entwickle interne mobile App für eine Organisation. Ich installiere den Webservice-Server auf dem organisationsinternen Server. Und die mobile App kommuniziert mit diesem Webservice-Server. Der Webservice-Server veröffentlicht den Soap-Service. zum Beispiel http://192.168.1.125:16645.wie mobile app mit dem soap web service server kommunizieren ohne ip-adresse und port

Die mobile App muss diese URL für die Kommunikation mit dem Server konfiguriert werden, da sich dies für jede Organisation ändert.

Ich möchte den Benutzern mobiler Apps keine solche Konfiguration geben. Können Sie mir helfen, wie kann ich das mit dieser Art von URL automatisieren?

Irgendwelche Domainsachen?

+0

Um automatisch zu sein, muss sich in der App (oder in den App-Daten - z. B. ini-Datei) etwas befinden, um der App mitzuteilen, welcher Server verwendet werden soll. Ansonsten kann es nicht automatisiert werden. Dies könnte auch der Server IP/Port sein. – Dsm

+0

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

+0

@TOndrej Ich glaube nicht, dass das der Schreiber will - sonst wäre App-Tethering angebracht. Das Problem mit App-Tethering (und tatsächlich Entdeckung) ist, dass es, wenn Sie eine Remote-IP-Adresse haben, irgendwie nur lokal funktioniert. – Dsm

Antwort

0

Es gibt Serverimplementierungen wie ActiveMQ, die ihren eigenen Servernamen über UDP senden, sodass Clients sie automatisch finden können.

Siehe für eine verwandte Frage: Discover a running ActiveMQ message broker using IP multicast und einen verwandten Blog-Post von mir (mit Quellcode) here und here. Indy kann mit den mobilen Compilern von Delphi verwendet werden. Daher sollte dieser Code mit Ihren Apps funktionieren.

Sie können dieselbe Logik mit Ihrem Server implementieren, sofern keine Netzwerkeinschränkungen für UDP bestehen.

+0

Erstens gibt es mehrere Server (wie ich es verstehe). Wenn Sie den Namen des Servers benötigen, können Sie auch seine DNS-Adresse oder IP-Adresse verwenden. Zweitens werden die gleichen UDP-Einschränkungen für dieses als App-Tethering gelten. Wenn dies funktioniert, können Sie auch App-Tethering verwenden, das weniger Verständnis für die Tiefe erfordert und einfacher zu implementieren ist. – Dsm

+0

@Dsm wie ich verstehe "Ich möchte nicht eine solche Konfiguration für mobile App-Benutzer geben", die App muss Agnostic der IP-Adresse/DNS-Namen, wenn es das erste Mal ausgeführt wird. UDP-Broadcast ist also ein typischer Anwendungsfall, ähnlich wie Rendezvous/Bonjour. – mjn

+0

Die Zeile "Die mobile App muss diese URL für die Kommunikation mit dem Server konfigurieren, da sich dies für jede Organisation ändert." irgendwie negiert das für mich. – Dsm

Verwandte Themen