В 0.9.16 я использую socket.emit с обратным вызовом, чтобы сервер чата возвращал некоторые данные, и я могу обрабатывать результат в соответствии с подтверждением. Но после обновления до 1.3.5 я нашел ошибку в консоли, подобную этой
Uncaught TypeError: Невозможно прочитать свойство "apply" из undefined.
Я сделал что-то вроде этого,
Из веб-страницы
socket.emit('userToUser', { 'usename': 'John',
'message': 'hi'
}, function(callback){
//callback handled
});
Чат-сервер
socket.on('userToUser', function(content, callback){
//do something
if(callback) return callback({'result':'success', 'messageid':content.messageid, 'chatid':content.chatid});
});
Когда я удалил обратный вызов с клиентской стороны, нет ошибки. Поэтому я считаю, что в обратном вызове будут внесены некоторые изменения.
Я получаю подтверждение, и чат работает нормально, но я беспокоюсь о консольной ошибке, которая приводит к socketio.js
Socket.prototype.onack = function(packet){
debug('calling ack %s with %j', packet.id, packet.data);
var fn = this.acks[packet.id];
fn.apply(this, packet.data);
delete this.acks[packet.id];
};
Ребята, пожалуйста, помогите