【问题标题】:how to communicate mobile app with the soap web service server with out ip address and port如何在没有 IP 地址和端口的情况下与肥皂网络服务服务器通信移动应用程序
【发布时间】:2016-10-21 08:48:41
【问题描述】:

我正在使用 Delphi XE8 开发移动应用程序。我还使用 Delphi XE8 制作了肥皂网络服务服务器。我正在为一个组织开发内部移动应用程序。我在组织内部服务器上安装 webservice 服务器。移动应用程序与该 Web 服务服务器进行通信。 webservice 服务器发布soap 服务。例如http://192.168.1.125:16645

移动应用程序必须配置此 URL 以与服务器通信,因为每个组织都会更改。

我不想为移动应用用户提供这样的配置。您能帮我看看如何使用这种 URL 自动执行此操作吗?

任何领域的东西?

【问题讨论】:

  • 要自动运行,应用程序内(或应用程序数据 - 例如 ini 文件)必须有一些东西来告诉应用程序使用哪个服务器。否则无法自动化。这也可能是服务器 IP/端口。
  • @TOndrej 我认为这不是作者想要的——否则应用程序共享将是合适的。应用程序共享(实际上是发现)的问题在于,除非您有远程 IP 地址,否则它只能在本地工作。
  • @Dsm 为什么不呢? Dynamic WS-Discovery 正是为此目的而设计的。客户端可以发送一个 UDP 多播“Probe”或“Resolve”消息,服务/代理将发送一个单播响应来宣布其端点。
  • @TOndrej。是的。我相信,应用程序共享确实使用了这种技术。但据我了解,这仅适用于同一子网中的计算机,这不是我对要求的理解。不过,我只涉足 UDP,如果我错了,我会纠正。

标签: android web-services delphi soap delphi-xe8


【解决方案1】:

有一些服务器实现,例如 ActiveMQ,它通过 UDP 广播自己的服务器名称,以便客户端可以自动定位它们。

查看相关问题:Discover a running ActiveMQ message broker using IP multicast 和我的相关博文(附源代码)herehere。 Indy 可以与 Delphi 移动编译器一起使用,因此该代码应该适用于您的应用程序。

只要 UDP 没有网络限制,您就可以在服务器上实现相同的逻辑。

【讨论】:

  • 首先,有多个服务器(据我了解)。如果您需要服务器的名称,您也可以使用其 DNS 地址或 IP 地址。其次,与应用程序共享相同的 UDP 限制将适用于此,因此如果这确实有效,您不妨使用应用程序共享,这需要较少的深入理解并且更易于实施。
  • @Dsm 据我了解I don't want to give such a configuration to mobile app users,该应用程序在第一次运行时必须不知道 IP 地址/DNS 名称。所以UDP广播是一个典型的用例,类似于Rendezvous / Bonjour。
  • 行“移动应用程序必须配置此 URL 以与服务器通信,因为每个组织都会更改。”对我来说有点否定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 2018-04-12
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
相关资源
最近更新 更多