如何在iOS和Android之间进行游戏通信

时间:2015-10-21 15:20:55

标签: android ios bluetooth wifi

我看过几篇帖子,但要么他们不回答我的问题,要么他们太老了。 假设我想开发一个卡片游戏应用程序,我需要设备在它们之间进行通信立即。此外,我只需要一个本地连接。人们会在同一个房间里玩。

那么将所有这些设备(iOS,Android和平板电脑/智能手机)组合在一起的选项是什么? WIFI,蓝牙,其他,...

非常感谢

2 个答案:

答案 0 :(得分:0)

实现这一目标的最佳方法是使用套接字。您可以在一台设备上打开TCP套接字,其他设备可以监听此套接字。然后,您可以使用JSON将消息从一个设备发送到另一个设备。对于套接字,您可以使用iOS和Android中的本机套接字,或者您可以查找像Socket.IO这样的库

答案 1 :(得分:0)

如果每个人都使用WiFi,那么使用套接字,因为它是最简单的。蓝牙需要非常接近,所以不太理想。

您将有两个方面需要解决:

1)在网络上寻找其他玩家

为此我会使用UDP消息。让您的应用程序在众所周知的端口上打开UDP套接字并在运行循环中注册它。当寻找其他玩家,并且可能定期查看计时器时,让您的应用程序向网络广播地址和您的游戏端口发送UDP AnybodyOutThere类型消息。在此消息中编码播放器信息和您要使用的任何其他内容。

如果您希望使用应用程序并发送给该应用程序,也可以创建多播组。

当您的应用收到UDP AnybodyOutThere消息时,请对其进行处理,然后直接向发件人发送ImHere类型的消息并记录其IP地址。

当您的应用收到UDP ImHere类型消息时,请将播放器添加到您的内部播放器列表并记录其IP地址。

通过这一切,您的所有设备都可以快速了解游戏中的对象。

2)在游戏过程中在设备之间进行通信。

为了可靠性,您可能希望为此部分使用TCP / IP套接字。让您的应用在众所周知的端口(与您的UDP端口不同)上打开TCP侦听套接字。实际上,只要在步骤1)的UDP发现消息中包含端口,就可以使用任何端口。

要请求玩家加入您在一台设备上托管的游戏,请让该设备通过UDP直接向所选玩家发送邀请。如果他们选择加入,请让他们的设备使用TCP套接字连接到设备正在侦听的端口上的托管设备。您现在拥有可靠连接到您的托管设备的所有玩家。

其余的由您创建用于管理游戏所需交互的协议。