2015-02-19 3 views
0

я имел обыкновение использовать socket.io испускает обратный вызов, как следующее:socket.io функция обратного вызова не работает

клиент:

mysocket.emit('helloword', 'helloword', function(param){ 
     console.log(param); 
    }); 

сервер:

var server = require('http').Server(app); 
var sserver = io(server); 
sserver.on('connection', function(socket){ 
    console.log('connection'); 
    socket.on('helloword', function(message, callback){ 
     console.log(message); 
     console.log(callback+''); 
     console.log('arguments', arguments); 
     callback('helloword'); 
    }) 
}); 
server.listen(config.port); 

Я использую angular-socket-io, как оболочка для socket.io-client. Моя служба проста, как:

'use strict'; 

angular.module('core').factory('mysocket', function(socketFactory){ 
    return socketFactory(); 
}); 

сервер вывода:

connection 
helloword 
function(){ 
    // prevent double callbacks 
    if (sent) return; 
    var args = Array.prototype.slice.call(arguments); 
    debug('sending ack %j', args); 

    var type = hasBin(args) ? parser.BINARY_ACK : parser.ACK; 
    self.packet({ 
     id: id, 
     type: type, 
     data: args 
    }); 
    } 
arguments { '0': 'helloword', '1': [Function] } 

Мой клиент консоли:

Мой вопрос:

  • Почему мой обратный вызов не стрелять?

ответ

1

Функция socket.on(event, callback) будет прослушивать событие от клиента, а затем запускать обратный вызов при срабатывании события. В вашем случае, когда он услышит «helloword», он запустит функцию обратного вызова, которую вы определили как второй параметр: function(message, callback). Вывод журнала сервера показывает, что на самом деле все вызовы console.log в вашем обратном вызове выполняются.

+0

Я не говорю о обратном вызове работает на сервере , О вызове обратного вызова на клиенте, запущенном с сервера – rahpuser

+0

Консоль.log в моем клиенте не работает – rahpuser

0

Чтобы увидеть, что происходит на стороне клиента попытаться установить localStorage.debug = «*» Смотрите это для получения дополнительной информации: http://socket.io/docs/migrating-from-0-9/#log-differences (предполагается, что вы используете socketio 1.0+)

Смежные вопросы