收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > JavaScript > nodejs > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

node.js適合游戲后臺開發嗎?

網站服務器和游戲服務器是怎么樣聯系到一起的?

1. 游戲分很多種,咱們先來看看MMORPG。

再怎么簡單的RPG服務器都免不了處理多人交互的情形,上百人在同一個場景里面,每個客戶端都需要收到其他所有人的操作信息。

其次,用戶的操作是非常頻繁的,一般的服務器傾向于持有長連接。而且這些鏈接的是頻繁交互的,沒有明顯的持久的分區策略,所以限制了服務器的橫向擴展,同一個場景往往只能放在一個物理機上面運行。

再次,端游通常是不敢把邏輯運算放客戶端的,用戶分分鐘給你破解掉,改改金幣,刷兩件裝備再常見不過了。所以這一臺地圖服務器得驗證地圖內所有玩家的操作,并計算怪物AI、掉率等一系列業務邏輯。

我們可以看到,傳統游戲服務器與網頁服務器具有明顯的區別,具有長連接、多廣播、有復雜的業務邏輯、分區策略受限等獨特的業務需求。

2. 咱們在來看看并發帶給游戲服務器的好處是什么。

并發實際上是一種程序邏輯流程,他是不需要多核物理支持的。大致意思就是讓多個獨立的邏輯流看上去像是在同時跑一樣。操作系統級別的并發就是多進程多線程模型。讓OS處理時鐘中斷,io阻塞等等問題。

對于 服務器 而言,如果任務大部分的時間耗在io上,有了并發機制可以避免整個地圖服務被io訪問阻塞。一個任務阻塞的時候,把空余計算資源分配到其他任務上去。在這種情況下,并發是有益于服務器運行效率還有響應時間的。

對于程序員而言,獨立的邏輯流意味著可以在一個可靠、簡單、松耦合的上下文環境里面,完成自己的任務。

因為讓OS處理程序邏輯切換得反復陷入內核,有的人覺得這樣太慢,做了一些處于user space的線程,進程內自己控制多個邏輯流。因為語言描述能力的限制,在C/C++上面寫還有用這種東西都太麻煩。于是產生了erlang, go, lua里面的coroutine語法糖。

node.js本質上也是自己控制多個邏輯流,但是這個邏輯流是根據io狀態還有優先級分發的。在實際的實現中,它盡量采用非阻塞異步io,單個任務調用io的時候,我就停掉它,等io完成的信號發上來了,我再重啟它。

注意這一點,每次我會運行一個任務,直到它完成或者是發生io調用都不會主動切換至其他的程序流。那么如果這一個任務里面涉及過于大量的計算,那么整個地圖進程都會被block在這里。

而正因為node.js是異步的,所以需要不斷的寫回調監聽io完成的信號。單個任務的邏輯流會多次的被打斷。當任務變得相當復雜的時候,即有所謂的callbak hell,會帶給調試開發非常大的麻煩。

3. 因為上面的原因,所以我不建議在非原型的MMORPG服務器開發中使用node.js。

4.最近興起的手游服務器倒是挺適合node.js,因為手游這玩意局限于網絡問題,服務器只能做關鍵數據驗證,也沒辦法處理特別多人交互的情形。服務器端已經簡化得跟網頁服務器沒啥區別了,業務邏輯也簡單,處理處理數據,然后持久化就成。

初識Node.js
1、Node.js是什么[1]Node是一個服務器端JavaScript解釋器,可是真的以為JavaScript不錯的同學學習Node就能輕松拿下,那么你就錯了,總結:水深不深我還不知

優化Node.js Web應用運行速度的10個技巧
Node.js受益于它的事件驅動和異步的特征,已經很快了。但是,在現代網絡中只是快是不行的。如果你打算用Node.js開發你的下一個Web應用的話,那么你

Windows8下搭建Node.js開發環境教程
剛接觸node.js,把一些過程記錄下來,已備今后查閱。如果有不明確或者錯誤之處,歡迎批評指正。Node.js是什么?我看了網上一些文章,我的理解是功

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
手游棋牌游戏运营
90k0极速比分足球比分 百亿游戏中心下载 极速pk10计划软件下载 时时彩app苹果版 重庆时时开奖网站 pk10四码二期必中方法 免费领航计划软件 飞艇两面盘计划 篮球直播 金星彩票是官方的吗 福彩欢乐生肖走势图 四川时时app下载手机版下载手机版下载手机版下载 时时彩助赢软件 欢乐生肖计划 滚球大小球看盘技巧 棋牌游戏二人斗地主