【发布时间】:2011-06-05 07:35:03
【问题描述】:
是否可以通信应用的两个实例:
- 在附近的设备(Android 或 iPhone)中
- 无需用户干预(除了启动应用程序一次)
- 没有互联网(但不是网络)连接?
怎么做?
- Android 到 Android?
- iPhone 到 iPhone?
- Android 到 iPhone,反之亦然?
【问题讨论】:
是否可以通信应用的两个实例:
怎么做?
【问题讨论】:
让我们忽略与在应用程序级别实现网络通信相关的问题,并专注于您的问题引发的系统设计问题。
您希望一台设备上的应用程序连接到另一台设备上的另一个关联应用程序,而无需任何用户干预/交互,而无需启动设备。为了使其正常工作,您的系统将需要与提供查找服务的两个设备/应用程序分开的第 3 方。
需要发生的事情是每个应用程序都需要与此服务进行通信,询问有关它应该连接的其他设备的数据(如果存在),然后尝试该连接。这基本上就是 bittorrent 跟踪器的工作原理。
请记住,实施中涉及的内容比简单场景所暗示的要多得多。例如,设备的正确注册/注销、注册超时、安全等。
【讨论】:
除非我误解了您的问题,否则您应该能够仅使用标准套接字(TCP 或 UDP,取决于您的需要)在任何/所有设备之间进行通信。对于 iPhone,您可能会使用 NSStream 类,而对于 Android,您可能会使用 Socket 类。
【讨论】:
新的 NFC 功能可以解决这个问题吗?
【讨论】: