首页 > 解决方案 > 如何选择哪一部手机是服务器,哪一部是客户端?

问题描述

我现在正在开发一个应用程序,其中(我将把它放在事物的网络方面)在将一部手机放在顶部之后,两个设备将相互传输数据(很可能是一些 JSON 数据,也可能是图像)其他。我已经制定了设备检测逻辑,但现在我陷入了启动:两部手机如何知道哪一部首先是客户端,哪一部是服务器,然后切换?我正在使用 Apple 的网络框架

也许两个设备都选择一个随机数,0或1,然后将结果与另一台设备通信,其中有0的设备是服务器,有1的设备是客户端?如果他们都得到相同的号码重新开始?我在网络方面没有太多经验,所以我真的不确定。

PS:我尝试使用MultipeerConnectivity框架,因为它提供了我正在寻找的点对点功能,但它没有得到 Apple 的积极支持(这意味着不利于未来的验证)并且不提供可定制性我正在寻找,这就是为什么我决定使用网络框架向下一层,它受到积极支持且易于交互。

标签: iosswiftnetworkingp2pnetwork-framework

解决方案


MultipeerConectivity 和 Network 框架具有不同的功能,通过Network ,您可以使用 TCP/UDP(以及 TCP 之上的 Websocket)和 WiFi 创建客户端-服务器架构,而MultipeerConectivity允许您通过 WiFi 和蓝牙连接多个设备。如您所见,它们并不相同。

对于 Network Framework,有Apple制作的自定义 P2P 连接指南

我不知道您的应用程序是做什么的,但通常其中一个设备应该是服务器/侦听器,例如:

  • 在聊天应用程序中,它将是创建房间的应用程序
  • 在游戏中,它将是第一个进入游戏的人

推荐阅读