游戲服務器架構與優化 游戏服务器架构与优化

蔡能

  • 出版商: 機械工業
  • 出版日期: 2018-04-24
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 314
  • 裝訂: 平裝
  • ISBN: 7111595475
  • ISBN-13: 9787111595472
  • 相關分類: Python程式語言資料庫
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書部分描寫了Python網絡編程和使用Python進行游戲服務器的編寫,其中涉及Socket編程中的同步和異步操作,UDP和TCP,還涉及OpenSSL通信加密協議,讓讀者瞭解到如何在客戶端和服務器端進行通信加密,此外,還特別指出了現在流行的H5游戲所對應的Websocket服務,以及Python的多線程框架。第二部分特別描寫了數據庫的存儲,包括基礎內容的數據存儲和緩存的存儲,第三部分著重分析了各種類型的游戲服務器以及歷史淵源,在語言和服務器架構中做一個平衡,分析了各種類型的網絡游戲所對應的服務器架構和設計。

目錄大綱

目錄Contents 
前言
第一部分網絡和服務器
第1章Python網絡編程模塊2 
1.1 Python Socket 3 
1.1.1 Socket套接字3 
1.1.2 SOCK_STREAM、SOCK_DGRAM 4 
1.1.3阻塞和非阻塞模式5 
1.2服務器端其他Socket方法7 
1.2.1 bind和listen 7 
1.2.2 setsockopt 8 
1.3客戶端Socket 10 
1.4通用的Socket方法12 
1.4.1 recv和send 12 
1.4.2 recvfrom和sendto 13 
1.5 SimpleHTTPServer和BaseHTTPServer 14 
1.5.1 SimpleHTTPServer 15 
1.5. 2 BaseHTTPServer 15 
1.6 urllib和urllib2 17 
1.6.1 urllib.urlopen和urllib2.urlopen 18 
1.6.2 urllib2中的GET和POST方法19 
1.7事件驅動框架Twisted 20 
1.7.1 Reactor模式21 
1.7.2 run、stop和callLater 23
1.7.3 Transports、Protocols、Protocol Factoies以及Deferred 24 

第2章通信加密26 
2.1軟件、通信加密的幾種常用方案27 
2.1.1異或位運算加密27 
2.1.2其他對稱加密29 
2.1.3非對稱加密30 
2.2 OpenSSL 33 
2.2.1生成證書35 
2.2.2公鑰和私鑰的配置40 
2.3 SSL/TLS通信43 
2.3.1 SSL/TLS連接45 
2.3.2 SSL/TLS HTTPS通信46 
2.4其他加密方式49 
2.4.1散列算法49 
2.4.2 BASE64 52 
2.4.3多國語言53 

第3章服務器實作55 
3.1構建Python Websocket服務器55 
3.1.1 Websocket的應用場景57 
3.1.2實作Websocket握手協議59 
3.1. 3 MAGIC_STRING在Websocket中的作用60 
3.1.4 Websocket啟動62 
3.1.5 Websocket消息拆分和讀取63 
3.2多線程服務器64 
3.2.1 Python的多線程模式65
3.2.2鎖68 
3.2.3 Python GIL 70 
3.2.4 multiprocess的解決思路72 
3.2.5給Websocket加上多線程73 
3.3線程池75 
3.3.1默認線程池和進程池75 
3.3.2協程76 
3.3 .3第三方庫78 
3.3.4 gevent的數據結構85 

第二部分存儲與數據庫
第4章基礎內容存儲94 
4.1數據庫存儲的種類95 
4.2 SQL與NoSQL 96 
4.2.1 SQL 96 
4.2.2 SQL語句語法97 
4.2.3 NoSQL 101 
4.2.4 NoSQL語句語法106 
4.3內存與IO讀寫速度108 
4.4同步內存數據109 
4.4.1 Redis數據庫的持久性111 
4.4.2 Redis主從數據庫複製112 
4.5數據備份和恢復113 
4.5 .1備份的類型114 
4.5.2使用Python編寫備份代碼115 
4.6不可或缺的SQLite 117 

第5章存儲方案121 
5.1高並發服務器的存儲方案121 
5.1.1網站高並發服務器的策略122
5.1.2數據庫的鎖125 
5.2高速緩存127 
5.2.1 Memcached 127 
5.2.2大文件緩存129 
5.2.3分佈式和集群130 
5.3二進制存儲方案132 
5.3.1磁盤IO和緩存133 
5.3.2圖片和影音文件134 
5.4大規模計算135 
5.4.1圖片服務器的架構136 
5.4.2讀取和寫入文本137 
5.4.3文本搜索方案138 
5.5區塊鏈技術139 

第三部分服務器架構及其方案
第6章遊戲服務器初探144 
6.1服務器消息和輪詢144 
6.1.1卡牌遊戲和弱連接145 
6.1.2消息的輪詢147 
6.2遊戲服務器架構演變149 
6.2.1 “上古時代”的遊戲服務器149 
6.2.2近代的網絡遊戲服務器153 
6.2.3近現代經典遊戲服務器模型155 
6.3地圖的無縫連接157 
6.3.1無縫連接的分析158 
6.3.2無縫地圖更深層次的問題160 

第7章遊戲服務器的交互165 
7.1無狀態和有狀態的服務器設計方案165
7.1.1無狀態的服務器設計方案166 
7.1.2有狀態的服務器設計方案167 
7.2輪詢169 
7.3集群方案171 
7.3.1集群的幾種方式171 
7.3.2集群的方案172 
7.3.3數據庫方案173 
7.3.4 Web服務和數據庫174 
7.3.5其他方案176 
7.4定時任務178 

第8章遊戲大廳181 
8.1大廳登錄流程181 
8.1.1登錄和選擇遊戲區182 
8.1.2註冊和登錄183 
8.2中間件185 
8.2 .1中間件的相關概念186 
8.2.2 ElasticSearch 191 
8.2.3在Python中使用ES 193 
8.3聊天服務195 
8.3.1聊天服務器的搭建195 
8.3.2聊天內容的獲取和分發196 
8.4大廳與遊戲的對接198 
8.4.1創建房間198 
8.4.2與遊戲的對接199 

第9章實時交互服務器202 
9.1長連接和強交互202 
9.1.1 TCP連接203 
9.1.2多線程205
9.1.3異步控制206 
9.1.4加入隊列207 
9.2使用UDP的方案210 
9.2.1什麼是UDP協議210 
9.2.2 TCP協議和UDP協議的區別212 
9.2.3使用Python編寫UDP服務214 
9.2.4加入多線程216 
9.3協議包的設計和實現218 
9.3.1協議包頭和包身219 
9.3.2協議包完整性221 
9.3.3協議的加密和壓縮222 
9.3.4協議包混淆223 
9.4斷線重連224 

第10章天梯和經濟系統227 
10.1什麼是天梯227 
10.1.1天梯的框架229 
10.1.2數據載入230 
10.2天梯層級231 
10.3經濟系統234 
10.3.1經濟系