2013-05-05 2 views
1

как заголовок obvoius мне нужно отправить сообщение об ошибке для неавторизованного пользователя, и мне нужно знать, как добиться этого, например, мне нужно отправить это сообщение пользователюнеобходимо отправить ошибку неавторизованному пользователю в socket.io

вы не имеете любое имя пользователя, чтобы начать чат

и распечатать его в браузере пользователей, как я должен делать это? на стороне клиента код что-то вроде этого

//this is the client side code 
     var socket = io.connect('http://localhost', { resource: '/chat/app.js' }); 

     // on connection to server, ask for user's name with an anonymous callback 
     socket.on('connect', function(){ 
      // call the server-side function 'adduser' and send one parameter (value of prompt) 
      socket.emit('adduser') 
     }); 

    socket.socket.on('error', function (reason){ 
     console.log('Unable to connect Socket.IO', reason); 
    }); 

но причина которой я получаю в консоли

Невозможно подключиться ошибка квитирования Socket.io

, как я должен напечатать сообщение который является причиной пользователя, ничто не разрешено?

это код на стороне сервера

 var io = require('socket.io').listen(80); 

     io.configure(function(){ 
      io.set('authorization', function (handshakeData, callback) { 
      // findDatabyip is an async example function 
      findDatabyIP(handshakeData.address.address, function (err, data) { 
       if (err) return callback(err); 

       if (data.authorized) { 
       handshakeData.foo = 'bar'; 
       for(var prop in data) handshakeData[prop] = data[prop]; 
       callback(null, true); 
       } else { 
//THIS IS THE MESSAGE ********************************************* 
       callback('you dont have any username to begin chat', false); 
       } 
      }) 
      }); 
     }); 
+0

ли вы все еще получаете эту ошибку, когда дата в обратный вызов от findDatabyIP соответствует? В других словах вы всегда получаете эту ошибку или только когда ваш пользователь не найден в вызове findDatabyIP? –

ответ

0

Чтобы отправить ошибку обратно пользователю необходимо изменить функцию ошибки на manager.js (socket.io \ Lib \ manager.js; строка 768 ок) от этого

function error (err) { 
    writeErr(500, 'handshake error'); 
    self.log.warn('handshake error ' + err); 
    }; 

к этому

function error (err) { 
    writeErr(500, /*'handshake error'*/ err); 
    self.log.warn('handshake error ' + err); 
    }; 
Смежные вопросы