簡體   English   中英

Node.js集群將連接傳遞給特定工作程序

[英]Node.js cluster passing connection to specific worker

我有基於socket.io庫的多人游戲,我想在多個線程上進行縮放。 我了解到,node.js具有用於處理多線程的集群模塊。 我的游戲世界由多個區域組成,我希望每個區域都在自己的過程中進行處理。 我需要一種將用戶的套接字傳遞給特定工作人員的方法,以便用戶可以從一個區域移動到另一個區域。 我已經閱讀了node.js文檔,該集群模塊使用輪詢方法為每個連接選擇工作程序。 也許有任何解決方法來操縱連接?

我不完全確定群集是否適合您。 群集的主要優點是,它可以自動平衡不同進程之間的傳入連接。 但是,您不想使用該功能-您希望將每個連接手動分配給正在處理給定區域的進程。

因此,我認為您應該啟動所需的進程數,為每個進程分配一個特定於該區域的端口,然后讓客戶端向主服務器發送一個Ajax請求,詢問它們應該執行哪個端口。用於其區域的socket.io連接。 客戶端獲得該ajax響應,然后直接連接到其區域的適當服務器。 您所有的socket.io服務器都需要允許來自所需母版頁域/端口的跨域請求。

可以如上所述通過端口完成連接到區域的服務器,也可以通過單獨的主機名(例如zone1.mygameserver.com完成連接,然后使用諸如nginx之類的東西將所有不同的主機路由到服務器上的特定端口框。

暫無
暫無

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

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