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')); –