在发送 Web 应用程序文件之前在 node.js 中设置客户端屏幕尺寸验证的最简单方法?

Lightest way to set a client screen size validation in node.js before sending web app files?

我用 node.js 和 socket.io 编写了一个网络应用程序。我不希望设备屏幕小于 500px*500px 的客户端加载游戏。我想验证客户端屏幕尺寸服务器端,然后发送沉重的游戏文件,或者如果设备屏幕不够大,请 html 小心。我尽量避免吃饼干。这可能吗?

谢谢

在服务器中:

socket.emit('screen');
socket.on('size', data => {
   let width = data.width,
       height = data.height;         
   //some code here
});

在客户端(使用jQuery):

socket.on('screen', () => {
    let width = $(window).width(),   
        height = $(window).height(); 
    socket.emit('size', {width, height});
});

如果不使用jQuery可以分别发送window.innerWidthwindow.innerHeight

您可以在客户端轻松完成。看看这个简单的例子:

server.js

const express = require('express');
const app = express();

app.get('/', (req,res) => {
    res.sendFile(__dirname + '/hello.html');
});
app.get('/small', (req,res) => {
    res.sendFile(__dirname + '/small.html');
});
app.get('/game', (req,res) => {
    res.sendFile(__dirname + '/game.html');
});

app.listen(3000);

hello.html

<html>
<body>
    <h1>Hello</h1>
    <script>
        if (window.innerWidth < 500 || window.innerHeight < 500) {
            window.location.assign('small');
        } else {
            window.location.assign('game');
        }
    </script>
</body>
</html>

small.html

<html>
<body>
    <h1>Small screen :-(</h1>
</body>
</html>

game.html

<html>
<body>
    <h1>Loading The Game</h1>
</body>
</html>