2015-02-08 56 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選項,但它仍然不推薦。

使用本地網絡服務器確實是最好的解決方案。