1. 程式人生 > >Unity網路通訊的一些理解——弱聯網http

Unity網路通訊的一些理解——弱聯網http

網路通訊一般有強聯網弱聯網,強聯網我們一般使用TCP或者UDP,弱聯網則是最常用的HTTP。今天我們首先來說一說HTTP。
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網通通訊的強聯網。