是否有一个客户端唯一的方法来处理socket.io中的emit complete

时间:2013-02-21 19:00:22

标签: node.js socket.io

在我的情况下,我必须使用socket.io通过套接字同步存储库。 在我的本地机器上它运行良好(高带没有延迟......)。但是我想要向服务器发出更大的对象,然后在发送这些对象时需要在客户端上进行一些锁定。

所以第一个已知的可能方法是在客户端上发出“gotData and”listen。 但有没有办法只从客户端检测完成?

e.g。像DUMMY例子一样:

//Some dummy code
socket.emit('syncObject', oObj).complete(function(evt){
    console.log('finished emit');
});

1 个答案:

答案 0 :(得分:0)

这有点像黑客,但你可以在你的emit中包含一个回调,并在收到消息时立即在服务器端调用它。

客户端

socket.emit('syncObject', oObj, function() {
  console.log('got message');
});

服务器

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

io.sockets.on('connection', function (socket) {
  socket.on('syncObject', function (obj, cb) {
    cb();
    // handle obj data
  });
});
相关问题