[英]node.js socket.io How to emit to a particular client?
我想向特定客户端“发送”一条消息,该消息是根据在不同客户端收到的另一条消息而选择的,我该怎么做?
我正在考虑将每个客户加入他们自己的“房间”然后进行广播。 有没有更好的办法?
socket.io 1.0 及以上版本的更新
io.to(socketid).emit('message', 'whatever');
对于旧版本:
您可以将每个客户端作为属性存储在一个对象中。 然后您可以根据消息查找套接字:
var basket = {};
io.sockets.on('connection', function (socket) {
socket.on("register", function(data) {
basket[data.nickname] = socket.id;
});
socket.on("privmessage", function(data){
var to = basket[data.to];
io.sockets.socket(to).emit(data.msg);
});
});
未测试......但它应该给你一个想法
对于 socket.io 1.0 版使用:
io.to(socketid).emit('message', 'whatever');
使用 socketID 发送到特定客户端。
服务器/包:socket.io:
io.to(socketID).emit('testEvent', 'yourMessage');
客户端/包 socket.io-client:
io.sockets.on('connection',(socket) => {
socket.on("testEvent", data => {
console.log(data);
});
});
您可以通过以下方式访问 socketID:
io.on('connection', (socket, next) => {
const ID = socket.id // id property on the socket Object
})
它只是socket
对象上的一个属性
对于 socket.io v1.0< 使用:
io.to(socketID).emit('testEvent', 'yourMessage');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.