• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Sheppard Y

            keep thinking keep coding.

            node.js手游服務器調研

            2016-07-08 日更新 
            此篇博客已經遷移到新博客,并做行文檢查和優化排版:
            http://blog.clawz.me/2013/08/12/13-nodejs-mobile-game-server-research/

             


            一、node.js能做啥

                http://www.infoq.com/cn/articles/what-is-nodejs

             

            二、雜項問題

            1. http的長連接是不是也是只能req/rep模式,能實現服務器端push嗎?

                http的長連接即HTTP keep-alive(HTTP1.1里加入),這個原生的只是為了更少的建立和關閉tcp鏈接,可以減少網絡流量;因為已建立的tcp握手,減少后續請求的延時等。這個http長連接不支持全雙工通信。

                http實現“服務器推”的技術,一是借助客戶端Flash XMLSocket或者Java Applet套接口來實現;另一種是comet技術。(還有一種遭罪的客戶端以一定間隔向服務器發出請求的輪詢就不提了)

                comet有兩種:

                    (1)基于AJAX的長輪詢(long-polling技術)

                    (2)基于 Iframe 及 htmlfile 的流(streaming)方式

                這兩種方式看描述已經離手游服務器差遠了,就不去招惹它們了吧。

             

            2. 大規模網站的架構?怎么做到水平擴展的?

                網站的需求跟游戲不一樣,網站都是http就夠了,req/rep即可,沒有交互等廣播同步之類的復雜狀態。

                (pomelo里表示游戲的業務模型很難做到傳統網站那種無限水平擴展)

             

            3. websocekt是什么?

                html5開始提供的,為了使瀏覽器和服務器間進行全雙工通訊的長鏈接協議。websocket協議本質上是一個基于TCP的長連接協議。與傳統C/S長連接的區別在于,websocket鏈接開始時的握手協議,客戶端首先要向服務器發起一個HTTP騎牛,這個請求和通常的HTTP請求不同,包含了一個附加信息"Upgrade:WebSocket"表明申請協議升級,服務器回應后,即握手完成,websocket鏈接建立起來,雙方自由通信,直到一方關閉鏈接。

                websocket相對于http的優點,除了全雙工通訊,還有服務器與客戶端交換的header信息很小。

                websocket與傳統socket的區別,前者有幀協議,不需要上層做拼包了。

             

            4. redis可以直接搞集群嗎?

                數據量太大時,redis的持久化會影響性能,解決方案時用個slave專職做持久化。另外redis容災和傳統web應用的減壓,就開多個slave,用于分擔讀的壓力。

                當庫到一定數量時,可以用分庫分表來水平擴展。 

             

            5. node.js能用c++擴展嗎?

                v8和node都是c++寫的。

             

            三、網易pomelo能干些啥

                分布式服務器,方便擴展。另外實現了很多游戲常用模塊,如aoi等。

             

            四、公司的node.js框架有哪些不能做的

            1. websocket實現了嗎?

                實現中。

            2. 方便分布式擴展嗎?

                貌似沒有pomelo那么方便。 

             

            五、總結

                ​node.js做手游服務器的開發還是挺方便的,pomelo已經做很多事情……

             

            N、參考

            1. Comet:基于 HTTP 長連接的“服務器推”技術:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/

            2. WebSocket:http://zh.wikipedia.org/wiki/WebSocket

            3. 使用 HTML5 WebSocket 構建實時 Web 應用:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/

            4. pomelo:https://github.com/NetEase/pomelo

            5. HTTP長連接:http://www.blogjava.net/xjacker/articles/334709.html

            6. Redis復制與可擴展集群搭建:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster

            posted on 2013-08-12 17:21 Sheppard Y 閱讀(3843) 評論(2)  編輯 收藏 引用 所屬分類: 設計架構nodejs

            評論

            # re: node.js手游服務器調研 2013-10-07 21:38 Kevin Lynx

            我記得node.js有個包裝了websocket的庫(不支持websocket的會有模擬)

            ps, http://socket.io/ socket.io  回復  更多評論   

            # re: node.js手游服務器調研 2013-10-08 15:13 Sheppard Y

            @Kevin Lynx
            恩,node.js的websocket底層庫是有的。我隨筆里寫的是指我們公司那套框架里是否支持(使用)了websocket,之前只支持(使用)了http。
            后來我這個項目沒有管websocket了,用了原生socket。:)  回復  更多評論   

            <2013年8月>
            28293031123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            国产精品久久久久久久久久免费| 精品国产热久久久福利| 久久久久99精品成人片牛牛影视| 狠狠色丁香久久婷婷综合| 亚洲国产精品一区二区三区久久| 青青青青久久精品国产h| 久久亚洲精品视频| 99精品伊人久久久大香线蕉| 久久这里只有精品久久| 日本福利片国产午夜久久| 亚洲狠狠久久综合一区77777| 国产精品99精品久久免费| 99国产欧美久久久精品蜜芽| 国产精品对白刺激久久久| 热久久这里只有精品| 久久男人中文字幕资源站| 欧美日韩精品久久久免费观看| 2021国内久久精品| 97热久久免费频精品99| 精品熟女少妇aⅴ免费久久| 久久久久99这里有精品10| 色婷婷综合久久久久中文 | 午夜精品久久久内射近拍高清 | 日本精品久久久久中文字幕| 99久久国产亚洲高清观看2024 | 久久91精品国产91久久麻豆| 精品熟女少妇aⅴ免费久久| 久久久久久久综合狠狠综合| 久久久久久亚洲Av无码精品专口 | 性做久久久久久久| 亚洲乱亚洲乱淫久久| 久久久久青草线蕉综合超碰 | 国产一级做a爰片久久毛片| 99久久人人爽亚洲精品美女| 久久这里都是精品| 青青草国产成人久久91网| 久久久久精品国产亚洲AV无码| 久久99国产亚洲高清观看首页 | 午夜欧美精品久久久久久久| 国产精品九九久久免费视频| 久久综合噜噜激激的五月天|