提问人:Priyansh Yadav 提问时间:11/8/2022 更新时间:11/9/2022 访问量:290
Cloudflare websocket 仅返回 Date.now() 的一个值
Cloudflare websocket returns only one value of Date.now()
问:
好的,所以我在 cloudflare workers 中制作了一个 websocket,当客户端与 Date.now() 连接以及断开连接时,它会创建一个变量 connectime。然后,它计算差值并记录客户端在连接 --ms 后断开连接,其中 -- 是时间之间的差值。.
addEventListener('fetch', (event) => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const connecttime = Date.now();
const upgradeHeader = request.headers.get('Upgrade');
if (!upgradeHeader || upgradeHeader !== 'websocket') {
return new Response('Expected Upgrade: websocket', { status: 426 });
}
const webSocketPair = new WebSocketPair();
const [client, server] = Object.values(webSocketPair);
server.accept();
//Do something
server.addEventListener('close', event => {
const endtime = Date.now();
console.log(endtime);
const contime = endtime-connecttime;
console.log("client disconnected after a connection of " + contime + "ms");
})
问题是它返回 0 值;
client disconnected after a connection of 0ms
答:
0赞
Paolo Tagliaferri
11/9/2022
#1
这是设计使然,也是 Cloudflare Workers 安全模型的一部分 - 来自文档:
Workers 旨在使代码无法测量自己的 本地执行时间。例如,Date.now() 返回的值 在执行代码时锁定在原位。没有其他计时器 提供。
有关完整解释,我建议使用以下文档页面
下一个:生成后的 Unity 脚本位置
评论