0

私のサーバーは時々ブラウザクライアントにパケットをブロードキャストします。

からのパケットからどれくらいの時間がかかったかを把握する方法はありますか?

server --> client

私は何かの時間を計ろうとしているので、理想的には私のJavaScript関数は次のようになります。

var travelTime = {amount of time it took packet to get to me};
setTimeout('myFunction()', 3000 + travelTime);

また、このパケットを要求していないため、送信時刻をログに記録できず、クライアント側で受信時刻をログに記録できません。このパケット要求は双方向ではありません。サーバーとのソケットを確立し、サーバーにはパケットを送信する機能があるためです。

どんなアドバイスもあります!

編集:コメットスタイルの接続

4

1 に答える 1

2

パケットにタイムスタンプを含めることもできますが、それは両方のシステムが同じクロックに同期されているかどうかに依存します (たとえば、NTP を使用)。サーバーとクライアントの両方を制御できない場合、往復なしでは求めていることは不可能です。NTP 同期を使用しても、クロックが同期する頻度に応じて多少のジッターが発生します。ラウンドトリップでは、クライアントとサーバーの両方が同じ LAN 上にない限り、ネットワーク条件の変化に伴い、遅延の計算は推定値に過ぎず、深刻な偏差が生じる可能性があります。

于 2010-01-07T18:31:13.047 に答える