Unity網路通訊的一些理解——弱聯網http
阿新 • • 發佈:2019-02-03
網路通訊一般有強聯網和弱聯網,強聯網我們一般使用TCP或者UDP,弱聯網則是最常用的HTTP。今天我們首先來說一說HTTP。
HTTP(超文字傳輸協議,HyperText Transfer Protocol)是當前最廣泛的網路協議。
首先,我們需要建立一個伺服器,也就是一個網站。
讓我們試著訪問一下,
接下來就是釋出網站了,我們可以再右側找到自己的網站點選右鍵點擊發布。
當網站釋出成功,我們便可以使用微軟為我們提供的IIS來對網站進行部署。
開啟IIS後我們可以點選網站,然後新建。此時會彈出一個介面。可以設定網站名稱,物理路徑,埠號。。。
接下來進入正題了,如何在unity中進行請求。
首先,我看先看一下Get請求。Get請求是通過www類去請求HTTP,URL就是我們的網站地址,需要說的一點是HTTP是必須發出請求後才可以從伺服器上獲取資源,所以我們每需要一次,就需要請求一次,也可以一次把資源全部請求,但一般不會這樣做。然後就是開啟協程,等待請求完畢,然後接受返回的資訊。
然後,我們看一下Post請求。Post請求會多一個WWWForm類,通過AddField方法來新增
引數,相當於Get方法路徑後的“?id=1”。
最後,總結一下Get方式和Post方式的差異。使用Get方式效率要高,但是安全性會降低,Post方式則相反。所以使用哪個要由具體情況而定。
HTTP(超文字傳輸協議,HyperText Transfer Protocol)是當前最廣泛的網路協議。
首先,我們需要建立一個伺服器,也就是一個網站。
以visual Studio2015為例,選擇Visual C#下的Web,右邊選擇ASP.Net Web應用程式進行建立,模板選擇Empty,勾選上Web API。
這時,我們可以看到,解決方案處已經自動生成好一些資料夾和檔案。讓我們點選執行一下,確認是否可以使用。
我們找到一個類,ValuesController,這裡面是我們能夠訪問的網址以及可以返回給我們的值。讓我們試著訪問一下,
接下來就是釋出網站了,我們可以再右側找到自己的網站點選右鍵點擊發布。
如果之前沒有配置檔案可以點選下拉選單->新建,然後建立自己的配置檔案。釋出方法改為“檔案系統”,建議在目錄下再建立一個資料夾,否則檔案會散佈在資料夾中,可能引起混亂。點選設定,將配置改為Release,然後點擊發布。
當網站釋出成功,我們便可以使用微軟為我們提供的IIS來對網站進行部署。
開啟IIS後我們可以點選網站,然後新建。此時會彈出一個介面。可以設定網站名稱,物理路徑,埠號。。。
網站名稱,看個人喜好填寫。物理路徑選擇之前我們釋出的路徑。修改埠號,預設為80的埠已經被佔用,所以我們需要更換一個埠,從0~65535之間都可以。點選確認進行生成。
接下來進入正題了,如何在unity中進行請求。
首先,我看先看一下Get請求。Get請求是通過www類去請求HTTP,URL就是我們的網站地址,需要說的一點是HTTP是必須發出請求後才可以從伺服器上獲取資源,所以我們每需要一次,就需要請求一次,也可以一次把資源全部請求,但一般不會這樣做。然後就是開啟協程,等待請求完畢,然後接受返回的資訊。
然後,我們看一下Post請求。Post請求會多一個WWWForm類,通過AddField方法來新增
引數,相當於Get方法路徑後的“?id=1”。
最後發一下實現協程的一個具體邏輯,供大家參考。private void PostURL(string URL, int id) { //定義一個表單 WWWForm form = new WWWForm(); //給表單新增值 form.AddField("id", 1); WWW data = new WWW(URL, form); StartCoroutine(Request(data)); }
private IEnumerator Request(WWW data) { yield return data; if (string.IsNullOrEmpty(data.error)) { Debug.Log(data.text); } else { Debug.LogError(data.error); } }按照以上程式碼,我們會返回text文字資訊,是我們請求的值,如果返回的是類,則會收到一個json字串,json可以進行資料解析,得到我們要的資料。
最後,總結一下Get方式和Post方式的差異。使用Get方式效率要高,但是安全性會降低,Post方式則相反。所以使用哪個要由具體情況而定。
下次,我們看一下Unity網通通訊的強聯網。