2014-10-17 4 views
0

я получил следующий конфиг:node.js Socket.io испускают не работает

app.set('port', process.env.PORT || 3000); 
var httpserver = http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

var io = require('socket.io')(httpserver); 

app.all('/blockcallback', function(req, res){ 

    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "X-Requested-With"); 

    getTxSender(req.query.tx,function(ref_wallet){ 
      (..) 
    }); 
    io.emit('status', {'message': 'done'}); 
    res.send('*ok*'); 
}); 

index.html

<script src="http://localhost:3000/socket.io/socket.io.js"></script> 
<script> 
        var socket = io.connect('http://localhost:3000'); 
         socket.on('status', function(datos){ 
          alert('received'); 
         }); 
</script> 

нормально, когда я называю http://localhost:3000/blockcallback выглядит как все работает отлично, но я я не получаю звонок «статус» на стороне клиента.

мои JS консоль показывает:

Error in event handler for extension.onRequest: undefined 
Stack trace: undefined localhost/:1 
Error in event handler for extension.onRequest: undefined 
Stack trace: undefined extensions::uncaught_exception_handler:9 
Stack trace: undefined extensions::uncaught_exception_handler:9 

Я не понимаю, что происходит ...

С уважением,

+0

Когда вы делаете 'io.emit()', к кому вы пытаетесь отправить? Все подключенные пользователи? Только пользователь делает запрос? Кроме того, вы понимаете, что способ структурирования вашего кода не выполняется: 'io.emit()' и 'res.end (" * ok * ")' ждут, пока не будет выполнено 'getTxSender()'? – jfriend00

+0

Я бы сказал, что одна из первых вещей, которые нужно сделать здесь, - это еще раз отладить эти ошибки в консоли и устранить их все. Ошибки имеют способ испортить другой код, даже иногда несвязанный код. – jfriend00

ответ

1

Я думаю, ваша проблема в том, вы не ждали подключения еще ...

io.on('connection', function (socket) { 
    socket.emit('status', { hello: 'world' }); 
}); 
Смежные вопросы