2017-09-23 74 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')); –

相关问题