我有以下层次结构:Store -> Manager -> Assistant
Manager
可以访问Assistant
发送的所有内容,Assistant
只能访问Manager
专门提供的内容。
据我所知,我可以创建namespaces or rooms,例如名为manager_assistant1
,manager_assistant2
等。
结果:Assistant
(id:1)收听manager_assistant1
。没关系。但是Manager
呢?是否可以收听manager_*
?
我当前的客户端只是监听流并输出发送到它或从中发送的数据。那很糟糕。
服务器
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(client){
client.on('myEvent', function(data) {
// do something with the data
// ...
// return the modified data
io.emit('myEvent', data);
});
});
server.listen(3000, function(){
console.log('listening on port 3000');
});
客户
var socket = io.connect('http://example.com:3000/');
socket.emit('myEvent', {
from: 'assistant1',
to: 'manager',
key: 'value'
});
socket.on('myEvent', function(data) {
var user = 'assistant1'; // or 'manager', 'assistant2', ...
if (data.from == user || data.to == user) {
console.log(data.key);
}
});
有什么想法吗?提前谢谢!
答案 0 :(得分:0)
您可以使用频道创建更高级别的逻辑,并尝试在json中发送您的业务数据,例如。