我正在创建一个简单的权限系统。我需要通过 Socket.IO 发送一个请求,而用户只需发送一个带有 true(接受)或 false(拒绝)的响应。
这次我有:
socket.on('initModule', function (out) {
io.sockets.in('permissions').emit('permissionRequest', {
uniqid : out.appid,
// Something goes here, no one really cares.
});
});
socket.on('permissionReturn', function(output){
if(output.status)
module.exports.modules[out.module](out.data, function(res){
if(res.status == "ok")
sendResponse(socket, out.module, 'ok', res.response);
else if(res.status == 'error')
sendResponse(socket, out.module, 'error', res.response);
});
else
sendResponse(socket, out.module, 'error', "Not permitted");
});
在“permissionReturn”事件中,我有一个“out”变量,但它在“initModule”中。当我为移动它创建一个全局变量时,它返回未定义。当我将“permissionReturn”事件移动到“initModule”时,它只是不起作用。通过 socket.io 发送变量并通过事件读取是不安全的。那么......我该如何解决这个问题?