Node.js 节点+;vue js用户脱机/联机状态(服务器端)

Node.js 节点+;vue js用户脱机/联机状态(服务器端),node.js,vue.js,Node.js,Vue.js,我希望能够看到用户当前是否正在浏览该网站。我知道您可以检测用户是否处于脱机/联机客户端,但我想监控他们是否处于打开状态,并显示状态消息/颜色 我该怎么做呢?这不是PHP,也不是socket io,因为我相信有些防火墙会阻止socket io连接,这会破坏我的应用程序 我使用vue js和node js,希望检测用户当前是否正在浏览并在服务器端使用它。我找到的另一个解决方案是设置超时,但如何将此设置为用户而不是服务器?好吧,既然您不想使用套接字,那么您的用户表应该有一个处于活动状态的列。在前端,在

我希望能够看到用户当前是否正在浏览该网站。我知道您可以检测用户是否处于脱机/联机客户端,但我想监控他们是否处于打开状态,并显示状态消息/颜色

我该怎么做呢?这不是PHP,也不是socket io,因为我相信有些防火墙会阻止socket io连接,这会破坏我的应用程序


我使用vue js和node js,希望检测用户当前是否正在浏览并在服务器端使用它。我找到的另一个解决方案是设置超时,但如何将此设置为用户而不是服务器?

好吧,既然您不想使用套接字,那么您的用户表应该有一个
处于活动状态的列。在前端,在应用程序的入口点,调用api将活动状态设置为1,这意味着它们处于联机状态

您的后端控制器可以是这样的,使用express

const app = express();

app.post('/users/active-status/:id', (req, res, next) => {
   const userId= req.params.id;
   const status = req.params.activeStatus

  // then find the user and set the is_active status to status variable

  next();
});


在前端,您可以监听关闭事件,运行并将用户活动状态设置为0

您的根组件


// when the user enters the website he is active
axios.post('/users/active-status/'+ userId, {
    activeStatus: 1
});


// check before they leave and set the active status to 0
window.onclose= function (e) {
    axios.post('/users/active-status/'+ userId, {
       activeStatus: 0
    });
};



window.addEventListener('offline', function(event){
    // the user has lost connection here
});

到目前为止,您尝试了什么?发布您的代码,您为后端编写的代码,以及frontned@rags2riches没有什么yet@AhmedKhattab代码只是jwt身份验证和加载数据。在这种情况下没有任何用处谢谢,如果他们突然失去连接或什么的,我将如何执行检查?您可以使用js online和offline events来监听vue js中的网络事件我已经在我的回答中包含了这一点,如果这解决了您的问题,请投票,并愉快地编码