2013-03-11 70 views
2

我们正在为企业场景构建iPad应用程序。用户将使用iPad在特殊企业活动中检查客人。可能有多达十二台iPad用于检入,并且他们都需要准确的数据,包括已签入的人员,何时以及何时输入了任何票据。问题在于通常没有互联网接入。所以iPad必须能够相互沟通。所有的iPad都会在一个地方,但它们可能会相距100-300英尺。我想我们可以包含一个要求,即如果距离太远,用户需要定期相互靠近。需要多个iPad互相沟通

我们愿意接受点对点解决方案,其中的iPad实际上可以互相交谈,或者我们可以有一台中央笔记本电脑充当服务器,并且iPad都与服务器通话。任何想法如何做到这一点,有什么选择,如果我们需要建立一个WiFi网络等,等等。

在此先感谢。

+0

4G iPad是否不是避免互联网匮乏的选择?然后,您可以拥有一个正常的托管服务器/ API并完成它。 – 2013-03-11 03:36:20

+3

为什么不用中央计算机设置adhoc WiFi网络?你不需要上网,只需要一些WiFi设备。 – rmaddy 2013-03-11 03:44:56

+0

如果David或rmaddy的建议都不适合你,你应该通过WiFi或BT来研究GameKit及其点对点网络功能。不过,我会先选择他们的解决方案之一! – 2013-03-11 03:56:16

回答

3

由于您对中央笔记本电脑开放,我会选择与所有iPad连接的WiFi基站。

然后,您可以获得一个简单的服务器,当用户在iPad上签入并将其存储在数据库中时,可以告诉服务器 - 如果有人试图再次签入,则很容易发出该人已有的回复已经签入。

作为备份,或者代替服务器,您可以使用Gamekit与托管的匹配项(无限制的设备) - 只要所有的iPad都在同一个网络上,他们应该能够看到对方。然后,您可以向所有参与者进行广播,以便其他设备在本地保存该信息。它可能比服务器更成问题,但也可能更健壮。

无论在哪种情况下,请确保所有可能的错误状况(如网络或服务器的完全故障或连接到其他iPad的能力)都使iPad处于仍能检查访客的状态,并在服务恢复时直接播放数据。您不希望因网络故障而等待的客人!

+0

+1:我喜欢这个答案。不过,我个人不会为每次登记而广播费用,而只需要服务器提供所有登记(设置并调用API以获取所有登记)。也许你可能也会让服务器返回一个'好'或'错误'的响应,每当iPad试图检查用户时,其中一个错误是用户已经签入了?这对我来说似乎是一个更好的延迟加载策略,可能需要更少的编程工作。 – 2013-03-11 04:07:59

+0

最好的努力,更好的可能是一个伟大的方法!但是如果可能的话,我会在某种冗余上花费一些额外的努力,因为我只知道在某个事件中在笔记本电脑上运行的服务器会以某种方式失败,技术原因只是可能的失败世界的一小部分。 – 2013-03-11 04:10:29