【发布时间】:2014-08-30 05:58:32
【问题描述】:
在我当前的项目中,我发现在移动设备上使用带有 socket.io 和 node.js 的 websockets 存在问题。移动设备处理socket消息的间隔好像有问题。
我把它简化为一个最小的场景:
服务器(最小的 express.js 服务器)以特定的时间间隔向客户端发送消息:
setInterval(function(){
socket.emit('interval');
}, 500);
客户端只是弄乱接收消息之间的时间并显示它们:
socket.on('interval', function (data) {
timeElement.html(new Date() - startTime);
startTime = new Date();
});
在desktop(使用 Chrome)上,消息之间产生的时间在515 ms 相当稳定。所以它就像一个 15 毫秒的延迟,但消息间隔是一致的。
在mobile device(我使用的是带有 Chrome 的 Galaxy Nexus)上,时间会有所不同between 400 and 600 ms,无论哪种方式都有更多的极端峰值。
我想使用这样的间隔作为游戏回合指示器,这个问题导致移动设备上的玩家移动很多滞后和不均匀。
【问题讨论】:
标签: javascript node.js websocket socket.io