使用socket.io延迟

时间:2012-03-30 17:43:10

标签: javascript socket.io delay nagle

我开始在网页游戏中使用socket.io。

使用nodejs express服务器我试着编写简单的测试。 在此测试服务器中,时间戳写入客户端,客户端返回此时间戳。 在此之后,服务器记录用于发送和返回的时间。

结果是:ping 500 ms + - 10 ms。 当我尝试在本地网络中使用另一台计算机时,结果相同。

所以,我认为,由于TCP Nagle算法或类似的东西,延迟非常高。 有没有人知道如何告诉nodejs服务器在没有等待的情况下刷新数据?

服务器代码:

var express = require('express'), socketio = require('socket.io');
var app = express.createServer();
var io = socketio.listen(app);
app.use(express.static(__dirname + ''));
app.listen(80);
io.set('transports', ['websocket', 'flashsocket']);
io.sockets.on('connection', function (socket) {
     socket.json.send({'message' : 'start'});
     socket.on('message', function (msg) {
         var time = (new Date()).getTime();
         console.log("PING WAS: "+(time - msg.timestamp)+" ms");
         socket.json.send({'timestamp' : (new Date()).getTime()});
     });
});

客户代码:

window.onload = function() {
    socket = io.connect('http://localhost:80');
    socket.on('message', function (msg) {
        socket.json.send({'timestamp' : msg.timestamp});
    });
};

0 个答案:

没有答案