2012-02-19 233 views
2

我要为Android打造的游戏,这个游戏有多人模式,所以应该发昂从服务器获取一些数据。服务器为Android游戏

让我们假设5名玩家都在玩这个游戏。 轮到他的每个玩家发送一个单词给服务器,服务器检查这个单词是否正确,然后服务器将这个单词发送给其他玩家。

而且服务器具有某种定时器,当次熄灭它发送给所有玩家,然后时间到了。

很简单。

现在我的问题是什么。我从来没有做过网络编程,我不知道如何实现服务器端。谷歌红粉好几个选项:

  • HTTP服务器
  • 套接字服务器

我应该用什么?其中一个选项或其他东西? 什么框架/库可以有助于implimentation?我更喜欢python(如CherryPy,如果http服务器适合我的purpouses),但我也可以在java或C++上完成。或PHP的(但我不希望使用它)

更新

思考我用python的TCP套接字服务器过了一会儿。这似乎是我的需求最轻量级的解决方案。而且从Java进行交互也很容易。

回答

1

考虑使用Twisted Python和使用持久推出自己的简单协议连接。

或者,使用诸如Apache或nginx的和WSGI正常HTTP(S)服务器在你的Python后端逻辑打结。为了使它看起来好像你有一个持久连接(用于通知所有提交的“单词”或计时器到期),你需要使用类似AJAX的东西。

+0

如果你要做到这一点通过HTTP,你将需要处理推送你的应用程序的一部分如果您建立自己的协议,在初次连接后维护与每个播放器的开放连接,则可以直接通知他们。如果你通过http来完成,你需要使用类似AJAX的东西来提供连接保持打开状态的错觉。另外,如果你打算做HTTP/AJAX,使用Apache或者nginx和wsgi作为它后面的python应用可能会更简单。 – gfortune 2012-02-19 22:01:04

+0

And android是否有工具来开发与我自己的协议沟通? – 2012-02-19 22:07:03

+0

我相信Twisted可以在ASE中使用(http://code.google.com/p/android-scripting/),所以你也可以用Python编写你的客户端。如果你用Python编写客户端,你会抽象出你的协议逻辑(基本上是如何序列化和反序列化),并在服务器和客户端上使用该代码。如果你通过http/ajax来实现,我希望这些东西可以在标准的android安装中使用。这就是说,我的回答是针对服务器端的东西,我没有太多的android开发工作经验。 – gfortune 2012-02-19 22:13:45

1

你有没有考虑过使用解析?

https://parse.com/

另一个很好的选择,我喜欢的是的NodeJS,但是你会得到很多的相同的好处,比如异步并发的龙卷风(Python)的

+2

据我了解分析是用于存储和retriving数据,但使用它,我无法实现游戏逻辑。我需要检查服务器端的单词是否正确。关于我的NodeJS得看我多一点,也许它可以帮助我 – 2012-02-19 21:30:19

+0

@RomanSilakov你可以使用云计算的代码现在做游戏逻辑 – chrs 2014-12-29 00:16:06