Android P2P多人游戏(带有)XMPP / Google talk b)JXTA peerdroid c)其他方式)

我是一名android开发者,我做了一些棋盘游戏。 现在我想制作一些我的棋盘游戏多人游戏。 我不想创build和托pipe我自己的Web服务,所以我想到了P2P。

我发现的第一件事是XMPP协议,但它不是真正的P2P,但如果我可以使用现有的谷歌谈话服务,我准备去。 这是可能的使用您现有的谷歌帐户,而不会干扰您的谷歌通话客户端的正常工作?

然后我听说了一个真正的P2P解决schemeJXTA,它已经从J2ME移植到Android( http://code.google.com/p/peerdroid/ )。

也许我是在这里过度合作(正如我有时)

我只是想知道为桌面游戏做简单P2P的最简单的方法。

欢迎您的意见! 提前致谢

Solutions Collecting From Web of "Android P2P多人游戏(带有)XMPP / Google talk b)JXTA peerdroid c)其他方式)"

克里斯托夫,你有没有得到你的问题的答案? 我最近也在一个多玩家应用程序上工作,尽pipe我select了托pipe服务器(最初)。 不过,我正在重新考虑我的select,但是我正在使用的库完全支持对等通信。 底层协议build立在Google Protobuf之上。 它本质上是一个build立在Netty之上的全双工RPC栈,可以使用Protobuf。 以下是RPC protobuf堆栈的URL: http : //code.google.com/p/protobuf-rpc-pro/

作者一直很有帮助,我发现了一些错误,没有什么大不了的。 在Android手机上使用这些库的时候,我也遇到了很多问题,但是它们并不是非常“紧凑”的。 没有什么特别大,只是不小:)。 到目前为止,我没有任何问题使得通信同步和asynchronous工作。 因此,我可能会将我的游戏转移到“点对点”的风格,只提供用于查找现有游戏/服务器的必要位置/注册服务器。

对你来说使用XMMP应该是可能的。 看点燃实时。 他们有一个很好的和活跃的Java API帮助build立你自己的Jabber扩展包,可以用来传输游戏状态的变化。

我认为使用两个谷歌谈话客户在同一个帐户可能是困难的。 但是这样会很好,因为你可以邀请所有来自你名单的朋友直接从你的游戏中和你一起玩。 这样你可以很容易地让更多的人玩你的游戏。

您无法使用我们所见过的现有Google Talk服务/连接。 你应该采取Janusz的build议,并检查出这个骇人听闻的图书馆,这是你最好的select。 要允许多个无干扰的连接使用相同的GTalklogin,请查看XMPP地址的资源组件,这就是允许您同时login到两个客户端到同一个帐户。 你可以有效地让你的游戏另一个客户。 更多信息: http : //code.google.com/appengine/docs/java/xmpp/overview.html#JIDs_and_Resources

最后,在2.2中似乎有一些与设备推送通信有关的新function,但是我还没有研究它。 2.2还没有广泛部署,所以可能有限的使用。

基本上,如果你想编写一个多用户游戏或基于XMPP(Jabber)的游戏,你应该仔细看看XMPP的pubsub扩展。 它是为了将数据从服务器推送到客户端而devise的,与HTTP相反。 在HTTP中,客户端必须始终从服务器获取信息,以便能够知道何时推送一些新数据。 虽然XMPP旨在将数据推送到客户端,但发生了什么情况。 服务器和客户端使用的资源较less。

您不应该使用XMPP的聊天部分,因为这会干扰用户的存在。

在pubsub中,您可以创build一个节点树,客户端可以侦听客户端订阅的树中任何节点或子节点上发布的任何新数据。 因此,如果某个客户端在一个节点上发布数据,那么所有订阅了该节点的客户端,或者任何父节点,都将被通知这些数据。

XMPP的好处在于它是可扩展的,因此您可以使用自己的扩展来扩展协议。 我也给你用户授权,authentication和encryption,你不需要自己debugging。

您可以使用任何支持pubsub的XMPP服务器,也可以自己托pipe一台服务器。 有很多服务器可用于此。 上次看,GTalk不支持PubSub。