2011-05-16 106 views
2

場景:我有很多連接到Node.js服務器(稱爲A)的客戶端(通過Socket.io網頁)。服務器充當另一個服務(Node.js)的應用程序「代理」,讓我們調用服務B.實際上,頁面使用代理與服務B進行通信。 我試圖理解,如果我可以從服務器A只接受一個打開的套接字到服務B,只是爲了獲得性能和資源(在服務器A上的第一個客戶端連接上,服務器將打開套接字到B並維護它打開消息以雙向流動)。 當然問題是,如果沒有某種干預,消息可能會相互混亂,導致B服務無法理解的混亂。 我在socket編程相當新手,我想知道,如果這又是一個「解決」問題,或只是錯誤答案的問題:) 謝謝Nodejs:許多客戶端通過一個套接字請求

+0

我倒是有一個\ n分開消息,然後基於B循環上.split(「\ n」)... – Claudio 2011-05-16 19:45:56

+0

這真的取決於你如何進行代理請求從A到B.你可以發佈一些示例代碼嗎? – 2011-05-17 00:10:03

+0

Ehi Rob,它非常簡單:A和B通過TCP套接字進行通話,因此它們共享一個數據流,在該數據流中來自客戶端的消息和來自B的相關答案。問題是流中的消息必須「封裝」,封包。我現在使用一個簡單的「\ n」分隔的「協議」,然後......它似乎工作 – Claudio 2011-05-17 09:41:26

回答

0

從您的意見,它看起來像你會從Redis的PubSub這類軟件中受益。

http://redis.io/具體而言,http://redis.io/commands#pubsub

+0

我接受答案,因爲我已經將Redis pub/sub用於我的另一個項目,我也可以在這個項目中使用它。 (已經在想它)。謝謝 :) – Claudio 2011-05-18 10:03:16