背景:
我即将在移动和桌面应用上开始开发。它们都将连接到本地wifi网络(没有互联网连接),并且需要彼此通信。首先,我们将iOS和Windows作为两个平台,目的是按顺序添加Linux,OSX和Android支持。桌面应用程序将主要是一个数据库服务器/通知中心,用于从iOS应用程序接收更新并将数据发送到其他iOS应用程序。桌面应用程序可能有一个前端,但如果需要,我们也可以将其合并到iOS应用程序中。
目前我们只是希望iOS应用程序自动检测它与服务器在同一网络上的时间,然后显示该服务器发送的数据(像bonjour一样)。
据我所知,我们可以采取两种方式来实现这个
为每个平台(Windows,Linux,OSX)创建完全原生的应用程序。 Pro:我们喜欢使用本机应用程序来提高性能和易于安装的想法。 Con:我对Windows或Linux开发一无所知。
创建一个使用Web技术(可能是python)构建的应用程序,并创建一个易于使用的安装程序,该安装程序将在桌面计算机外创建一个本地服务器,移动应用程序可以与之通信。 Pro:大多数开发都是跨平台的,安装程序应该很容易移植。 Con:如果我们确实想要在服务器应用程序中添加前端,它将不是平台原生的,并且将使用css + html + javascript GUI。
问题:
我的问题是如何在每种情况下实现iOS应用和服务器应用之间的连接。
我如何通过本地网络接收和发送通知。
如果没有静态IP,如何使用NSURLConnection连接服务器?
我希望这很清楚。如果没有,请询问,我会澄清。
希望这会让事情变得清晰起来。我需要一个可以管理数据库的桌面应用程序,这个应用程序将连接到未连接到互联网的本地无线网络上的iOS设备。我可以使用http协议(最好使用烧瓶应用程序)或在应用程序和服务器之间使用直接套接字连接。我的问题是上述哪两种选择最好?我的偏好是使用Python + Flask的基于网络的应用程序,但我不知道如何将iOS应用程序连接到运行在本地网络上的烧瓶应用程序而不使用静态IP。对此有任何建议将不胜感激。
答案 0 :(得分:1)
如果没有应用程序或框架的任何细节,它很难模糊,并指出正确的方向。如果您已经探索过Bonjour / Zeroconf将iPhone连接到服务器,我会一直向下看。
关于如何从Python广播服务器,首先要看的是PyBonjour。虽然在Windows与Mac和Linux之间如何配置此问题存在一些问题,但这将是轻微的。例如,对于Windows,用户需要安装Bonjour for Windows,因为Linux用户需要Avahi,但大部分都可以在安装时进行设置。
其次,看看Bonjour documentation for iOS,它将更容易,因为它全部内置于系统和API中。从这里,服务器和客户端都可以互相发现。
最后一个问题是确定您是否希望iPhone连接到服务器,反之亦然,以及如何。然而,这些是或多或少主观的基本网络决策。
由于您已经表明了对Web开发的偏好,因此您可以轻松地将iPhone连接到Flask服务器并使用HTTP / HTML技术从服务器检索详细信息。
关于通知,除非客户端A的数据更改意味着客户端B 绝对需要知道数据的变化,否则我不担心。客户端B下次连接到服务器时,可以在该点推送正确的数据,而不是担心通知服务。如果另一个客户端确实需要了解更改,则另一个解决方案可能只是提供建议的常规旧电子邮件,并提示他们打开应用程序。
答案 1 :(得分:0)
我肯定会推荐一个webapp。您的问题的答案如下:
我如何通过本地网络接收和发送通知。
使用基于REST的Web服务与服务器通信。 您必须使用轮询来接收数据: - (
如果它没有静态IP,我如何使用NSURLConnection连接到服务器?
- 如果可能,请在网络中配置指向服务器IP的域名。 (配置本地DHCP,每次根据mac地址为服务器提供相同的IP!)
- 拥有IP范围,当应用启动时,尝试访问特定网址并检查其是否正在响应。
- 每次应用启动时都要求用户输入服务器IP!
醇>