如何选择哪个手机应该是服务器,哪个应该是客户端



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

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

附言:我尝试过使用MultipeerConnectivity框架,因为它提供了我想要的对等功能,但它没有得到苹果的积极支持(这意味着不利于未来(,也没有提供我想要的可定制性,这就是为什么我决定使用网络框架,它得到了积极支持,而且很容易与之交互。

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

对于网络框架,有一个由Apple 制作的自定义P2P连接指南

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

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

最新更新