想在一個步步高在線多人遊戲,超過100甚至1000個在線用戶。遊戲通信使用Ajax + 3秒Comet連接間隔+ ASP.NET技術完成。這是一個真實的場景嗎?是ajax + comet + asp.net的可縮放嗎?
有沒有這麼多的Comet open連接阻塞服務器導致大的延遲?
想在一個步步高在線多人遊戲,超過100甚至1000個在線用戶。遊戲通信使用Ajax + 3秒Comet連接間隔+ ASP.NET技術完成。這是一個真實的場景嗎?是ajax + comet + asp.net的可縮放嗎?
有沒有這麼多的Comet open連接阻塞服務器導致大的延遲?
不,它不可擴展。您需要編寫一個輕量級服務器來處理連接。已經有商業和開放源代碼的輕量級服務器。
這裏的答案不正確。 IIS與彗星的比例很大,如WebSync所證明。
這是可行的。
IIS/ASP.NET隊列請求,隊列由.NET線程池提供服務。傳統的觀點是,一個線程會阻塞COMET場景下的不可擴展的工作。
但是,ASP.NET提供了異步http處理程序,這意味着線程會返回到線程池,直到響應準備好發送回客戶端。看看我的博客文章對此事
http://neilmosafi.blogspot.com/2009/03/comet-pushing-to-web-browser.html http://neilmosafi.blogspot.com/2009/03/comet-bayeux-protocol-and-aspnet.html
可擴展?當然!
可伸縮性問題與後端解決方案而非IIS有關。在谷歌搜索「PokeIn」彗星ajax庫。 (絕對適用於ASP.NET和免費)
另外,PokeIn也適用於Linux下的Mono。 – Azz 2010-10-23 02:48:06