js 怎样判断用户是否在浏览当前页面
1个回答
展开全部
要用websocket来搞定。不用websocket就要用ajax轮询来实现,比较耗资源。
nodejs简单的websocket 服务端实现
// 在安装了nodejs的情况,用npm install ws
const ws = require('ws')
const wss = new ws.Server({port: 8080})
let users = 0
wss.on('connection', function(ws) {
ws.on('message', function(message) {
// message的内容客户端发送过来
if (message === '进入') {
// 进入成功的时候,操作代码
users = ++users
console.log('正在浏览....', '在线用户数量:', users)
}
});
ws.on('close', function(close) {
try{
// 退出的时候,操作代码
users = --users
console.log('已经离开');
}catch(e){
}
});
ws.on('error', function() {});
})
客户端(浏览器):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
var ws = new WebSocket("ws://localhost:8080");
ws.onopen = function(e) {
console.log(e)
ws.send('进入')
}
ws.onclose = function(e) {
ws.send('离开了!!!!')
}
</script>
</head>
<body>
</body>
</html>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询