使用socket.io将数据发送到目标客户端

问题描述 投票:1回答:1

例如,在客户端,我有两个注册用户和在线用户。

UID 1:LeonUID 2:阿尔伯特

Leon想知道有多少信用。

例如,Leon按下按钮获得功劳,所以:

socket.emit('my_credit', 1);

并且在服务器端,我使用此代码:

示例:

var express = require('express');
var server  = express();
var app    = require('http').createServer(server);
var io     = module.exports.io = require('socket.io')(app);

io.on('connection', function(socket){

    socket.on('my_credit', function(uid){
       getUserCredit(uid, (result) => {
            socket.emit('my_credit', result);
        })
    });

});

现在,在客户端,所有用户都将收到此值!如果我只希望Leon获得此值,我该怎么办?

我该如何在服务器端找到当前ID?

javascript node.js socket.io client
1个回答
0
投票

哟!因此,基本上,目前,除了检查套接字ID外,我不知道任何其他解决方案。发出客户端的示例:

socket.emit('my_credit', {user: 1, id: socket.id});

接收服务器端:

var express = require('express');
var server  = express();
var app    = require('http').createServer(server);
var io     = module.exports.io = require('socket.io')(app);

io.on('connection', function(socket){

    socket.on('my_credit', function(uid){
        getUserCredit(uid.user, function(result){
            socket.emit('my_credit', {res: result, id: uid.id});
        })
    });

});

并且正在接受客户端:

socket.on('my_credit', (message) => {
if (message.id !== socket.id) return;
// your code here
})
© www.soinside.com 2019 - 2024. All rights reserved.