例如,在客户端,我有两个注册用户和在线用户。
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?
哟!因此,基本上,目前,除了检查套接字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
})