我有一個正在正常工作輪詢的API,並與發出的結果填充HTML頁面中的node.js/socket.io web應用。Socket.io:散發出爲特定客戶
我的問題是,有多個用戶需要使用這一點,我想他們的情況下分開,以便每個人只會收到他們的查詢的結果。
現在,當有人使用該網站就會返回,可能是也使用本網站的其他用戶的結果。 我曾嘗試使用這種方法來解決這個問題:
var clients = {};
io.sockets.on('connection', function(socket){
console.log("this is "+socket.id);
clients.id = socket.id;
})
io.sockets.socket(clients.id).emit('progress',{info:listing});
當然,這得到與登錄到網站,這樣不將所釋放到原來的用戶現在正在發出新的一切每個新用戶更換用戶。
我想知道的是,如果有任何內置功能來解決這個問題,或者我應該用另一種持久化存儲進行。
任何幫助將不勝感激。
編輯
在程序只是存儲在express.sessionStore插座對象,而不是。 io.sockets.on(function(socket){ request.sessionStore.socket = socket; })
上面的代碼現在可以工作並且只發送給事件發起者。
爲什麼不使用socket.emit()?它只會發送給觸發事件的客戶 –
@Momary這是我的問題 - 我現在發佈修訂。 – MonsterWimp757