簡體   English   中英

在node.js中分離Game Server和Web Server

[英]Separating Game Server and Web Server in node.js

我幾乎用node.js和socket.io完成了基於回合的多人游戲。

我使用socket.io將express.js作為Web服務器,並將另一個類作為游戲服務器。

我的問題是這兩個都在同一應用程序中運行。 我有一個網頁登陸頁面,用戶可以登錄並查看其播放器詳細信息並在大廳聊天。 現在到這里為止,與游戲邏輯無關。 所以我問自己,為什么這個游戲服務器在與Web服務器相同的應用程序中運行。 另請注意,將來可能會有不同的服務器,例如(歐洲服務器,美洲服務器,亞洲服務器等),但將保留相同的登錄頁面和登錄機制。

那么實現此目標的最佳方法是什么?

我應該制作兩個單獨的node.js應用程序,一台網絡服務器和一台游戲服務器。 但是在那種情況下,我可以在套接字和請求之間共享會話數據嗎?

另一個缺點是,在瀏覽站點時,任何意外行為都可能導致Web服務器拋出異常並關閉應用程序,從而也關閉了游戲服務器。

您可能具有完全獨立的node.js應用程序和公用會話存儲(例如Redis),以在允許訪問游戲服務器之前檢查用戶是否已通過Web服務器進行了身份驗證。 公共會話存儲還可以幫助同時運行游戲服務器,而不僅僅是一台Web +一台游戲服務器。

您也可以通過捕獲所有錯誤來防止關閉應用程序,但是通常不建議這樣做。

以后的編輯:這是有關會話存儲的優缺點的一小部分清單。 它不適用於node.js,但適用於此處: http : //techwhizbang.com/2009/12/memcache-session-store/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM