簡體   English   中英

發送到單獨的socketid(私有消息)在socketIO中不起作用

[英]sending to individual socketid (private message) doesnt work in socketIO

我試圖建立一個小型聊天應用程序,在其中我可以發送私人消息(不向所有人廣播)。 到選定的套接字ID。 我瀏覽了SockeIO的文檔,並找到了可行的解決方案。 該應用程序運行良好,因為我使用廣播事件對其進行了測試,所有連接的套接字都收到了發出的消息。 如何實現個人短信?

這是我嘗試過的代碼。

socket.to(sockets[data.receiver]).emit('receive',data.message);

我在哪里使用過socket.to()。emit('嘿','我剛遇到你'); socketio docs和sockets [data.receiver]中給出的示例給出了要發送消息的人的socket.id。

考慮如下內容:

class Connection {
        constructor(name, socket) {
                this.name = name;
                this.socket = socket;
        }
}

let connections = [];

socket.on('connection', (socket) => {
        // Get a name for the user/connection
        // ...
        // let name = getUsername(socket);

        connections.push(new Connection(name, socket));
});

let sendToName = (name, message) => {
        for(let i = 0, len = connections.length; i < len; i++) {
                if(connections[i].name === name) {
                        connections[i].socket.emit('message', message);
                        break;
                }
        }
};

當然,您可以使用名稱以外的其他方式...但是您知道了。

暫無
暫無

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

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