1

我开始使用 socket.io 进行网页游戏。

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

结果是:ping 500 毫秒 +- 10 毫秒。当我尝试在本地网络中的另一台计算机上执行此操作时,结果相同。

所以,我认为,由于 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});
    });
};
4

0 回答 0