为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2022-06-16 14:46:51
例如,在客户端,我有两个注册用户和在线用户。UID 1:莱昂UID 2:阿尔伯特莱昂想知道有多少信用。例如,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 ?
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

要将消息发送到目标客户端,请使用以下to 功能:


例如:


io.sockets.to(/* Unique ID */).emit('message');

或者:


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


    socket.on('check', function(){

        io.sockets.to(socket.id).emit('check', 'Just You: ' + socket.id);

    });


});


查看完整回答
反对 回复 2022-06-16
?
Helenr

TA贡献1780条经验 获得超4个赞

所以基本上,目前,除了检查套接字 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

})


查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 451 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号