我以前的項目都是基於http作網絡通訊,可是作多玩家同時對戰的遊戲,http短鏈接不支持服務器的push是個問題,這樣客戶端就沒辦法收到服務器的消息。node
最簡單的方法是定時發起request詢問服務器,顯然效率和流量是個問題。還有Comet方法,即服務器保持鏈接直到有數據可用才返回。web
網上搜了一下comet,看到評論說這個方法也效率不是很高。服務器
HTML5支持websocket以後好像socket鏈接是一個又高效又簡單的方法。客戶端用socket.io比較簡單,服務器要找一個引擎,簡單易用爲前提,最好是比較熟悉的node.js,像erlang之類,雖然網上介紹都說十分強大好用,但要新學一個函數式語言,效率過低了。websocket
node.js裸寫socket好像也很麻煩啊,本身寫質量確定也不行,因此網易出的pomelo成了個人選擇。看了pomelo的教程,這東西的設計好像很牛啊,用起來也好像很是簡單啊,也有一些商業程序在用,應該仍是比較靠譜的吧。網絡
附:架構
深刻淺出node.js遊戲服務器開發1——基礎架構與框架介紹框架
主要是推pomelo的socket