在Socket.IO中等待用户的响应

时间:2013-09-28 23:47:13

标签: javascript node.js socket.io

我正在创建一个简单的权限系统。我需要通过Socket.IO发送请求,用户只需发送一个带有true(accept)或false(deny)的响应。

这次我已经:

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发送变量并通过事件读取是不安全的。那么......我该如何解决这个问题?

0 个答案:

没有答案