如何选择哪个电话应作为服务器,哪个电话应作为客户端?

问题描述

我现在正在开发一个应用程序,其中(我将其保留在物联网方面)两个设备在将一部手机放在手机上后将相互传输数据(很可能是一些JSON数据甚至是图像)。顶部。我已经确定了设备检测逻辑,但是现在我陷入了僵局:这两部手机如何知道哪一个首先是客户端,哪个是服务器,然后切换?我正在使用Apple的Network Framework

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

PS:我尝试使用MultipeerConnectivity框架,因为它提供了我正在寻找的对等functionality,但是Apple并没有积极地支持它(这对面向未来),并且不提供我要寻找的可定制性,这就是为什么我决定深入研究Network Framework的原因,该框架受到积极支持并易于与之交互。

解决方法

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

对于Network Framework,有Apple

制定的自定义P2P连接指南。

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

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