将iOS应用程序连接到Windows / Linux应用程序

背景:

我即将开始在移动和桌面应用程序上进行开发。 他们都将连接到本地的无线networking(没有互联网连接),并需要相互沟通。 首先,我们将iOS和Windows作为两个平台,目的是按照顺序添加Linux,OSX和Android支持。 桌面应用程序将主要是一个数据库服务器/通知中心,用于从iOS应用程序接收更新并将数据发送到其他iOS应用程序。 桌面应用程序可能有一个前端,但如果需要的话,我们也可以将它整合到iOS应用程序中。

目前,我们只想让iOS应用程序自动检测与服务器在同一networking上,然后显示该服务器发送的数据(bonjour)。

据我所知,有两条路可以实施

  1. 为每个平台(Windows,Linux,OSX)创build一个完全原生的应用程序。 Pro:我们喜欢使用原生应用程序的性能和易于安装的想法。 Con:我完全不了解Windows或Linux的发展。

  2. 创build一个使用networking技术(可能是Python)构build的应用程序,并创build一个易于使用的安装程序,将创build一个本地服务器的移动应用程序可以通信的桌面机。 Pro:大部分开发都是跨平台的,安装者应该很容易移植。 Con:如果我们想在服务器应用程序中添加一个前端,它将不会是平台本地的,而且会使用css + html + javascript GUI。

题:

我的问题是如何在各种情况下实现iOS应用程序和服务器应用程序之间的连接。

  1. 我将如何通过本地networking接收和发送通知。

  2. 我怎么能连接到服务器使用NSURLConnection,如果它没有一个静态IP?


我希望这是明确的。 如果没有请问,我会澄清。

更新09/06/2013

希望这会清理的事情。 我需要一个桌面应用程序来pipe理数据库,这个应用程序将连接到未连接到互联网的本地无线networking上的iOS设备。 我可以用http协议(最好是使用一个应用程序)或通过在应用程序和服务器之间使用直接套接字连接来实现。 我的问题是上面哪两个select最好? 我的首选是使用Python + Flask的基于networking的应用程序,但是我不知道如何将iOS应用程序连接到运行在本地networking上的烧录应用程序,而不使用静态IP。 任何意见,将不胜感激。

没有任何细节的应用程序或框架,它很难被模糊地指向正确的方向。 如果你已经探索Bonjour / Zeroconf连接iPhone到服务器,我会一直往下看。

首先看PyBonjour如何从Python广播服务器。 尽管如何在Windows与Mac和Linux上配置这个问题有一些问题,但这个问题会很小。 例如,对于Windows用户将需要安装Bonjour for Windows ,在Linux用户将需要Avahi,但大多数可以安装durin安装。

其次,看一下iOS的Bonjour文档 ,这将会更容易,因为它全部集成到系统和API中。 从这里,服务器和客户端都可以被发现。

最后一个问题是确定您是否希望iPhone连接到服务器,反之亦然。 然而,这些是基本的网络决策,或多或少是主观的。

既然你已经指出了网页开发的优先选择,你可以很容易的iPhone连接到Flask服务器,并使用HTTP / HTML技术从服务器检索详细信息。

关于通知,除非客户A的数据变化意味着客户B 绝对需要知道数据的变化,我不担心。 客户端B下一次连接到服务器时,正确的数据可以在这一点上推进,而不必担心通知服务。 如果另一个客户需要知道更改,另一个解决方案可能只是普通的旧电子邮件,建议他们,并提示他们打开应用程序。

我肯定会建议一个webapp。 你的问题的答案如下:

我将如何通过本地网络接收和发送通知。

使用基于REST的Web服务与服务器进行通信。 您必须使用轮询来接收数据:-(

我怎么能连接到服务器使用NSURLConnection,如果它没有一个静态IP?

  1. 如果可能,请在您的网络中配置一个指向服务器IP的域名。 (配置本地DHCP根据mac地址每次给你的服务器相同的IP!)
  2. 有一个IP范围,当应用程序启动,尝试达到特定的网址,并检查它是否响应。
  3. 每次启动应用程序时都要求用户输入服务器的IP地址!