socket.io .emit()方法是同步还是异步操作?

时间:2014-11-15 13:10:54

标签: node.js socket.io

我的服务器端代码在这样的循环中运行:

        var start = Date.now();
        var lotsOfData = calculateData();//SYNCHRONOS, returns 500kb of data
        var end = Date.now();

        console.log('got data in ', end-start, ' ms'); // ~40ms

        var substart = Date.now();
        req.io.emit('lotsOfData', lotsOfData);// IS IT SYNC OR ASYNC ?
        var subend = Date.now();

        console.log('emitted data in ', subend-substart, ' ms'); // ~40ms

起初我做了相当昂贵的计算来获取一些数据。它的同步操作和代码在那里被阻止。之后,我发出并发送事件并随之发送此数据。

我的测试表明,获取和发送都需要大约40毫秒。但是,如果发送部分是异步的,则可以在发送当前数据时获取下一部分数据,因此服务器将每40毫秒发送一部分数据,而不是像现在这样每80毫秒发送一次。

希望你明白我的意思。是否有可能加快速度?

0 个答案:

没有答案