慕俠2389804
2019-08-23 15:37:09
使用socket.io和node.js將消息發(fā)送到特定客戶端我正在使用socket.io和node.js,直到現(xiàn)在看起來(lái)還不錯(cuò),但我不知道如何從服務(wù)器向特定客戶端發(fā)送消息,如下所示:client.send(message, receiverSessionId)但是這些.send()和.broadcast()方法似乎都不能滿足我的需要。我發(fā)現(xiàn)作為一種可能的解決方案是,該.broadcast()方法接受一個(gè)不發(fā)送消息的SessionIds數(shù)組作為第二個(gè)參數(shù),因此我可以將當(dāng)前連接的所有SessionId的數(shù)組傳遞給服務(wù)器,除了一個(gè)我希望發(fā)送消息,但我覺(jué)得必須有更好的解決方案。有任何想法嗎?
3 回答

大話西游666
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
那么你必須抓住客戶端(驚喜),你可以采取簡(jiǎn)單的方式:
var io = io.listen(server);io.clients[sessionID].send()
這可能會(huì)破壞,我?guī)缀醪粦岩?,但它總是?code>io.clients可能被改變,所以請(qǐng)謹(jǐn)慎使用上述內(nèi)容
或者您自己跟蹤客戶端,因此您將它們添加到偵聽(tīng)器中您自己的clients
對(duì)象,connection
并在disconnect
偵聽(tīng)器中將其刪除。
我會(huì)使用后者,因?yàn)楦鶕?jù)你的應(yīng)用程序,你可能希望在客戶端上有更多的狀態(tài),所以類似的東西clients[id] = {conn: clientConnect, data: {...}}
可能會(huì)起作用。

牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
在1.0中你應(yīng)該使用:
io.sockets.connected[socketid].emit();
添加回答
舉報(bào)
0/150
提交
取消