0
我使用node.js和socket.io编写了一个web应用程序。我不想让设备屏幕小于500px * 500px的客户端加载游戏。我想验证客户端屏幕大小服务器端,然后发送重型游戏文件或只是一个小小的HTML警告,如果设备屏幕不够大。我尽量避免Cookie。这可能吗?在发送Web应用程序文件之前在node.js中设置客户端屏幕大小验证的最简便方法?
感谢
服务器我使用node.js和socket.io编写了一个web应用程序。我不想让设备屏幕小于500px * 500px的客户端加载游戏。我想验证客户端屏幕大小服务器端,然后发送重型游戏文件或只是一个小小的HTML警告,如果设备屏幕不够大。我尽量避免Cookie。这可能吗?在发送Web应用程序文件之前在node.js中设置客户端屏幕大小验证的最简便方法?
感谢
服务器:
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.innerWidth
和window.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>
因此,我发送一个index.html与这个socket.io脚本,在服务器上处理,然后,如何切换index.html与游戏目录? –
你的架构是什么?你使用快递吗? – mk12ok
是的!我服务这样的静态文件: server.listen(process.env.PORT || 3000); (express.static(__ dirname +'/ public')); –