2015-11-23 67 views
0

我正在開發基於客戶端 - 服務器架構的遊戲軟件。這裏遊戲/客戶端與遠程服務器通信以獲取存儲在服務器上的玩遊戲所需的各種輸入參數。此過程每5分鐘發生一次。客戶機位於互聯網連接速度非常慢的地區。我應該使用什麼/應該成爲首選的連接/通信協議? (HTTP,TCP-Sockets)或其他。應使用哪種通信協議進行低速互聯網連接

我的主要目標是降低帶寬消耗和更快的響應速度,以便即使在低網速下游戲也能保持平穩運行。

請建議。

回答

0

由於HTTP和TCP在不同的層上運行,HTTP協議和TCP協議基本上是不同的。 HTTP是一個應用層,可以在TCP等傳輸層協議的基礎上運行。

爲了避免通過HTTP(HTTP標頭)傳輸不需要的信息,您應該創建自己的應用程序層協議,該協議在existing transport layer protocol such as TCP or UDP的頂部工作。

但是,如果沒有獲得有關您如何編碼遊戲以及想要傳輸什麼樣的信息的更多信息,則很難提供更具體的答案。

您可能想要查看圖書館MessagePack,它爲您處理應用程序層協議做得很好。

+0

Hello Mathias-S。謝謝您的回覆。遊戲基本上提取用戶帳戶信息和可用點來玩遊戲等。所以我想知道是否應該爲此創建基於客戶端服務器的基於Socket或HTTP的API的調用機制?由於許多遊戲應該部署的位置的Internet連接速度非常慢。 – user1759227

+0

客戶端服務器Socket需要傳輸比HTTP更少的信息。我不知道你正在使用哪種語言,但試圖最小化你需要發送的字節數是要走的路:不必要的標頭(HTTP),使你自己的協議只發送所需的位,即如果可用的點是整數,決定你需要多大的整數(16位?24位?32位?),並將這些數字作爲字節而不是字符發送(就像你可能使用HTTP一樣),即通過文本發送10000個字節需要5個字節,將它作爲16位數發送需要2個字節。 –

+0

此外,你可能想看看[MessagePack](http://msgpack.org/),它爲你處理這個。然後,您仍然需要編寫套接字通信代碼(以避免HTTP,請參閱上文),但至少您可以在不需要太多工作的情況下儘量減少需要傳輸的數據。 –

相關問題