ele*_*nor 7 java sockets networking android network-programming
我正在编写Android多人游戏,它基本上由客户端连接和交换消息的服务器组成.当玩家连接到服务器时,玩家列表将返回给他/她.然后玩家可以选择要挑战的用户 - 当然他必须从玩家列表中选择一个仅包含连接用户的玩家.
当玩家1挑战玩家2时,需要将消息从玩家1发送到服务器,服务器又必须向玩家2发送消息,通知他有关挑战的信息.然后,player2可以接受/拒绝挑战.
我可以使用以下技术来实现这一目标:
使用Java套接字编程的自定义服务器/客户端.服务器基本上接受来自客户端的连接,为每个连接的客户端生成一个新线程.这个问题是:
使用Java REST jersey在HTTP之上构建客户端 - 服务器.如果服务器可以轻松地向客户端发送通知,这将是一个完美的解决方案.这里实际上有多个设计决策:
如果两个玩家通过网络玩游戏,我会很高兴知道其他多人游戏如何处理网络通信.
我也愿意接受一个全新的建议,即如何实现我的目标.我可以编写任何代码,所以不要犹豫,让我知道一些更难以实现网络通信的方法.
我还要提一下,我很乐意在我的情况下实现一个完全特定的方法,所以它可以做任何工作,但我也在寻找更通用的方法来进行客户端和服务器之间的通信.这样我就可以编程一个接口/无论如何重用其他Android游戏,Android应用程序中的代码.
我希望我提出这个问题,我会得到一些有价值的答案.
谢谢
你应该看看 XMPP。它是一个协议(最初是为聊天程序创建的),允许在用户之间发送 xml 数据。
它具有分离的客户端-服务器关系,因此您可以专注于开发适合手机的客户端应用程序,并根据您的需求开发不同的服务器。
该协议有大量可用信息(我应该知道,我写了一篇关于在游戏应用程序中使用该协议的论文),但您可以首先在维基百科上查找它,看看它是否是您想要的。
aSmack是一个用于创建 android xmpp 客户端的库。设置它并让一切正常工作需要一些调整,但一旦完成,一切都会很整洁。
编辑:与建议使用 C2DM 的答案相关:
来自c2dm 文档“发送大量 C2DM 消息”:
您是否过于频繁地发送 C2DM 消息?如果您需要在短时间内频繁地与应用程序通信,C2DM 可能不是最佳解决方案。相反,请考虑实现 XMPP 或您自己的协议来交换消息,并仅使用 C2DM 发送初始通知。
| 归档时间: |
|
| 查看次数: |
3069 次 |
| 最近记录: |