2015-02-08 58 views
-2

我很困惑。在我运行一个简单的webonly cocos2d-js例子之前,我感觉它生成了html5 + js文件,所以我可以将它托管到任何地方或者脱机运行。如何托管一个cocos2d-js网络游戏?

但事实并非如此,在本地运行我的示例我必须启动一个cocos web服务器,这让我想知道:为什么它需要Web服务器来运行脱机简单的html5 + js代码?以及我需要托管一个cocos2d-js webonly游戏(我使用IIS)?

+1

这是因为你的电脑不是网络服务器。只有运行Web服务器才能使其成为Web服务器。因此,对于本地测试,您需要运行Web服务器应用程序,然后托管您的浏览器可以打开,下载并运行的js内容。 – LearnCocos2D 2015-02-10 13:27:04

回答

0

你的困惑来自你的假设,只是因为HTML5和JavaScript的东西,它应该能够在本地运行。

这并非总是如此。

有很多需要Web服务器的HTML5功能 - 主要是出于安全原因。其中之一就是Cocos用来异步加载资源库的XMLHttpRequest。出于安全原因,除非您使用本地Web服务器,否则XMLHttpRequest不会在本地运行。

+0

这是有道理的,但它如何知道哪个网络服务器应该运行它?默认情况下所有的web服务器是否都实现了XMLHttpRequest以便cocos2d-js运行?我是否可以假设任何网络服务器都能够托管并允许客户端运行游戏,而不会在它们之间产生任何差异/问题? – RollRoll 2015-02-19 01:14:35

+0

XMLHttpRequest是客户端的概念,而不是服务器端的概念。 XMLHttpRequest向服务器发出一个普通的HTTP请求,就像Web浏览器一样。任何可以提供内容的网络服务器都应该能够响应XMLHttpRequest(尽管具体的服务器响应将取决于请求本身)。 – SimeonJM 2015-02-19 03:53:26

+0

当我说'就像网络浏览器一样'时,我的意思是'如果你输入一个URL并点击GO,那么就像一个网络浏览器一样。 Web浏览器是使用XMLHttpRequest时实际发出请求的原因(因为XMLHttpRequest在浏览器中,客户端使用Javascript)。 – SimeonJM 2015-02-19 04:02:40

0

这是出于安全原因,防止恶意脚本访问本地文件。

这可以绕过铬与--allow-file-access-from-files选项,但它仍然不推荐。

使用本地网络服务器确实是最好的解决方案。