亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 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 關注
  • 416 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號