2017-09-23 47 views

回答

1

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> 
+0

因此,我發送一個index.html與這個socket.io腳本,在服務器上處理,然後,如何切換index.html與遊戲目錄? –

+0

你的架構是什麼?你使用快遞嗎? – mk12ok

+0

是的!我服務這樣的靜態文件: server.listen(process.env.PORT || 3000); (express.static(__ dirname +'/ public')); –

相關問題