[英]Sending Data to Target Client with socket.io
例如,在客戶端,我有兩個注冊用戶和在線用戶。
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?
要向目標客戶端發送消息,請to
function :
例如:
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);
});
});
喲,所以基本上,目前。 除了檢查套接字 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
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.