【问题标题】:Robust real-time communication between iOS App and Mac AppiOS App和Mac App之间强大的实时通信
【发布时间】:2011-08-19 21:56:02
【问题描述】:

我们正在做一个展览 (http://pulse.media.mit.edu),我是 iOS、objective-c 和 Xcode 的新手。展览截止日期是一周,我被困住了。

我遇到的问题似乎很简单。

我们的展览有一台投影仪和一台 iPad。投影仪将连接到 Mac 并播放视频。 iPad 将充当这些视频的控制器。更简单地说:

我在 Mac 上有 50 个视频。我需要在 Mac 上开发一个应用程序,打开时会循环播放其中一个视频。

在 iPad 上,我需要开发一个可以在 mac 上的视频之间实时切换的应用程序。 iOS 应用程序已经设计好了,我们只是在处理一些代码。

在 Mac 上,当 iPad 告诉 Mac 更改视频时,我们希望它使用 Core Animation 在视频之间切换,就像这样 (http://youtu.be/pyd8O-2mkgk?t=1m)。

所以我的问题是:最可靠的方法是什么?它必须能够在博物馆中运行两个月。需要考虑的一些事项:

  • 我们在 4,000 英里之外,无法始终对其进行监控。出色地 每晚检查以查看它是否仍在工作,但它应该在白天运行 不破。
  • 如果人们拔下 iPad,它应该仍然可以工作。
  • 它应该尽可能健壮。

我怎样才能最好地做到这一点?我是否应该将 iPad 上的数据库写入连接的 Mac 上本地运行的数据库,然后每秒监视该数据库 10 次?套接字是否足够坚固,可以单独使用?

如果您确实提出了一种方法,请您指出一些可以帮助我快速完成此操作的资源(框架、函数名称等)的方向吗?

感谢您的宝贵时间。

【问题讨论】:

  • 这可能很大程度上取决于您播放视频的程序。如果视频播放器程序响应 AppleScript 命令,那么我将首先弄清楚如何编写一个 AppleScript,以便在您在 Mac 上运行视频播放器时控制它。一旦工作正常,下一步就是弄清楚如何从 iPad 调用该脚本......也许通过 ssh 或 rsh。
  • 当你说“没有相关”时......你发现了什么?怎么没用?
  • 我想我对这里的策略最感兴趣。我不确定什么是可靠的。这是离我家 2000 英里的展览。虽然我可以远程进入,但我不能经常检查它是否已关闭。我正在找人说“这种方法是iPad和计算机之间最可靠的实时通信。使用wifi因为xyz。这里有一些关键的地方要看。QTKit用于控制视频。[插入框架]用于实时通信等。之后我可以把它拼凑起来。但现在,我没有真正的线索。
  • 我现在有。那么这将如何运作呢?从 iPad 将视频 ID 发送到 mysql 数据库?然后在mac上,只是循环,不断检查数据库是否有变化?

标签: objective-c ios macos ipad sockets


【解决方案1】:

我会选择 server-in-the-middle 选项,因为它最容易调试,并且只需要客户端的有效互联网 (wifi) 连接。遇到连接问题时,您只需要知道如何将 iPad 或 Mac 连接到互联网的人。并且您可以在服务器端看到哪个设备连接有问题。

此外,使用纯 HTTP 听起来是进行通信的最佳方式,而且后端可以用任何服务器端脚本语言编写。两个客户端都应该每 X 秒轮询一次服务器。

如果您在截止日期之前使此基本设置运行良好,则可以尝试让设备直接相互连接(以减少缓慢的用户体验),并将服务器解决方案留在那里作为备用方法。 Mac 应用程序可以充当 HTTP 服务器,接受 iPad 通常发送到服务器的相同命令。挑战将是可靠地知道要连接到哪个 IP。您可以对其进行硬编码或使用 Bonjour。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    相关资源
    最近更新 更多