4
我非常渴望將Socket.io集成到我的node.js項目中,但我對如何正確使用socket.io有一些疑惑。我一直在瀏覽文檔和教程,但是我一直無法理解關於socket.io如何工作的一些概念。Socket.io:如何處理/管理多個客戶端請求和響應?
我心目中的情形是這樣的:
- 有多個客戶端C1,C2,...,CN
- 客戶端發出請求到服務器R1,... RN
- 服務器接收請求,確實數據處理
- 當數據處理完成時,服務器發出響應於客戶端器Rs1,......,Rs2的
與c onfusion我在這的情況是,當服務器完成數據處理它發出下列方式響應:
// server listens for request from client
socket.on('request_from_client', function(data){
// user data and request_type is stored in the data variable
var user = data.user.id
var action = data.action
// server does data processing
do_some_action(..., function(rData){
// when the processing is completed, the response data is emitted as a response_event
// The problem is here, how to make sure that the response data goes to the right client
socket.emit('response_to_client', rData)
})
})
但在這裏我沒有定義,我發送到響應的客戶端!
- socket.io如何處理這個問題?
- socket.io如何確保:響應Rs1被髮送到C1?
- 什麼是確保:響應Rs1不發送到C2?
我希望我已經很好地解釋了我的疑惑。
哦之一!我終於明白了!謝謝。這是我頭腦中的混亂,我認爲套接字對象是客戶端可以連接的「全局通道」。但現在有意義的是,在每個連接上都會創建一個「新頻道」。 –