(十五)nodejs循序渐进-高性能游戏服务器框架pomelo之Protobuf模块
消息壓縮
在實際編程中,為了減少數據傳輸帶寬的消耗,提高傳輸效率,pomelo提供了對消息的壓縮,包括基于字典的對route的壓縮和基于protobuf的對具體傳輸數據的壓縮。
route壓縮
在實際編程中,網絡帶寬的有效數據負載率是一個值得考慮的問題。特別地,對于移動客戶端來說,網絡資源往往并不是很豐富,為了盡可能地節省網絡資源,往往需要盡大可能地增加數據包的有效數據率。
route問題
在pomelo編程中,pomelo中的route是用來確定消息的分發路徑,將其交給相應的服務器和服務處理的。route分為兩類,由客戶端發給服務端消息時使用的route和服務端向客戶端廣播時使用的route。
-
前一種route是由服務器自動生成的,其中的字段就代表了對應的方法在服務端的位置。如“area.playerHandler.attack”則表示在“area”類型的服務器上的“playerHandler”提供的“attack”方法,其格式為".."。 路由信息過長,使得有效消息數據負載率大大降低。例如,在聊天應用中,如果用戶的發言僅僅是一個字符,結果不得不攜帶一個route,"chat.chatHandler.send",這樣使得有效數據負載率大大降低。
-
后一種route是服務端想客戶端推送消息時使用,是客戶端的路由信息,如“onMove”,“onAttack”等,其格式一般為"on"這些字段是由用戶自己定義的。雖然可以定義很短的路由,但是那樣會造成可讀性變差,不利于代碼閱讀。
一般來說,當應用固定后,具體路由就不會再變動,因此可以考慮通過一種簡單替換的方式對
總結
以上是生活随笔為你收集整理的(十五)nodejs循序渐进-高性能游戏服务器框架pomelo之Protobuf模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: caffe2安装篇(二) ubuntu1
- 下一篇: 社交app应用开发 客户端+服务器源码