我想知道如何以正确的方式计算服务器延迟。
我已经创建了一个服务器到客户端消息系统,并创建了一个计算服务器延迟的数据包。该数据包设置为等待250ms计数器溢出。
目前我正在使用此代码:
public override function handle():void
{
if(Client.keepAliveTimeSend != null){
var timePassed:int = (int)(new Date().time - Client.keepAliveTimeSend.time);
Client.ping = ((Client.ping * 3 + timePassed) / 4 ) / 4;
}
Client.netHandler.sendPacket(this);
Client.keepAliveTimeSend = new Date();
}
public override function handleServer():void
{
setTimeout(Server.serverNetHandler.sendToUser, 250, clientId, this);
}
当客户端连接到服务器时,它将开始发送此数据包。
使用此代码,本地主机上的ping为20,但我猜这不对。