ski*_*ift 11 php python twisted nonblocking node.js
我已经使用PHP一段时间了.我一直在考虑学习Node.js以使用非阻塞的想法来创建在线游戏或应用程序.将两者结合使用有很多信息.使用Node作为游戏后端的一部分可以真正加快游戏的某些方面,特别是如果游戏允许用户实时互相对战.
好吧,最近我一直在研究学习Python(是的,我有很多时间在我手上).PHP上有很多关于它的功能,我非常喜欢.但是为了使用Node.js来完成我考虑使用PHP的后台工作,我根本找不到太多信息.我也注意到Python确实有一些线程功能.由于我对Python的世界还很陌生,我甚至需要Python中的Node.js吗?Python可以处理Node.js可以使用的这些功能吗?或者使用Node仍然有好处,或者我真的需要它.
作为旁注,自从我开始查找Python以来,我还发现了Twisted,它似乎是另一个像Node这样的框架.但Twisted是用Python编写的.因此,在上述任何一种情况下,Twisted都会更好(除了Twisted似乎已经更长并且比Node更稳定的事实).我只是意味着它总是值得使用,无论是Node还是Twisted?如果是这样的话比Python更好吗?
对不起,这是一个很大的问题,但我在这个领域非常不确定和n00b.谢谢.
因此,在阅读有用的答案后,我看到以下选项:
我已经了解PHP并且对此感到满意,目前正在学习JS.这对我来说是一条重要的可能途径.但是我也倾向于从PHP到Python,因为我喜欢的语言的一般特征.
我认为这个选项可能比#3更合理,使用Twisted来处理网络端口以允许玩家互相玩游戏.
这只是让你不必学习JS,这对我来说似乎不是那么大的交易.我已经开始研究它并不难学习.但就像在一个问题中提到的那样,混合一些东西; 和{}可能会有一些问题.
像#2一样,但是有Node.js. 大多数情况下,我看到添加Node来处理网络方面,让玩家能够在实时/即时游戏中玩游戏.而且大部分代码都是Python.
Sole Node.js是一个考虑因素,它也是单一语言路由.但是学习和使用Python也没有相同的好处(它是我可以使用的通用脚本语言,也不是网页设计.我想学习和使用它的一个重要原因.).
Ans作为#5,但在阅读评论之前,我没有考虑使用Twisted路线.虽然看起来似乎有道理,但它并不真正涉及我想要学习的两种语言之一,Python和Node.
以上似乎是我可以走的主要路线.现在我还不确定要走哪条路.我真的想学习Node和Python.所以我似乎只需要分别学习这两个.但我仍然需要为这个项目选择一个选择.到目前为止,我喜欢数字2和5,其中6接近5,因为Node和Twisted有一些非常相似的功能.提及1,因为这是我已经知道的.但我还是想要学习新东西.所以,真的是数字2和5.或4,因为它类似于2.哈,我仍然需要做一些功课.也许这值得另一个问题.
编辑(2012年9月19日):我只想更新,说我目前主要使用Node.js进行开发.并计划使用Redis for PubSub功能来提供实时页面更新的外观,因为我不需要像游戏或配对内容编辑那样真正的实时.
而Python绝对可以被用于异步编程,给人的感觉并不自然,甚至扭曲,如果你把它比作Node.js加载它只是看起来不还是觉得这很好.
由于您正在计划进行实时网络游戏,因此您最有可能最终使用WebSockets.
WebSockets基于HTTP并使用升级标头启动双向连接,这意味着,如果您需要大量的后备支持较旧的浏览器,您可以轻松地让您的普通服务器和 WebSocket在端口80上运行,那里总是有全能的Socket.IO.
根据你的前端的复杂程度,我宁愿选择express.js,也可以自己写一些东西.
在前端和游戏中同时拥有相同的进程(显然)有很多优点,您可以获取大量信息,而无需查询数据库.
另一个重要的"功能"是,您不必在客户端逻辑和服务器逻辑之间进行上下文切换.这看起来似乎只是一个小小的好处,但除了你不会输入;Python并且{}在连续工作几个小时后不忘记你的JS之外,你也可以重新开始 - 在服务器和客户端之间使用代码.再一次,这可能看起来像一个小的好处,但好的多玩家游戏总是在客户端运行很多东西,只是为了弥补滞后,Python和JavaScript是完全不同的,所以不得不重写JS的部分在Python中需要时间,甚至可能会引入错误.
(现在对无耻的插头......)
我已经用Node.js完成了2个多人游戏,虽然没有HTTP前端两个游戏在客户端运行了很多JS:
多人小行星/几何战争交叉
RTS概念(有点像Eufloria)
此外,虽然JSON似乎非常适合在浏览器和客户端之间发送数据,但您很快就会发现它使用了大量带宽,因为我遇到了同样的问题,我写了一些专门的库来节省45%流量:
BiSON.js
同样,在服务器和客户端上同时使用JavaScript 可以重复使用代码,从而节省开发时间.
总而言之,我强烈建议使用Node.js:
| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |