3
A
回答
2
从Sails v0.9.8开始,您可以使用config/sockets.js
中的onConnect
和onDisconnect
函数在套接字连接或断开系统时执行一些代码。这些函数可让您访问会话,因此您可以使用它来跟踪用户,但请记住,仅仅因为套接字断开连接,并不意味着用户已注销!他们可以打开几个选项卡/窗口,每个选项卡都有自己的套接字,但所有这些都共享会话。
跟踪的最佳方法是使用Sails PubSub方法。如果你有一个User
模型和UserController
与login
方法,你可以不喜欢在最新帆编译:
// UserController.login
login: function(req, res) {
// Lookup the user by some credentials (probably username and password)
User.findOne({...credentials...}).exec(function(err, user) {
// Do your authorization--this could also be handled by Passport, etc.
...
// Assuming the user is valid, subscribe the connected socket to them.
// Note: this only works with a socket request!
User.subscribe(req, user);
// Save the user in the session
req.session.user = user;
});
}
// config/sockets.js
onConnect: function(session, socket) {
// If a user is logged in, subscribe to them
if (session.user) {
User.subscribe(socket, session.user);
}
},
onDisconnect: function(session, socket) {
// If a user is logged in, unsubscribe from them
if (session.user) {
User.unsubscribe(socket, session.user);
// If the user has no more subscribers, they're offline
if (User.subscribers(session.user.id).length == 0) {
console.log("User "+session.user.id+" is gone!");
// Do something!
}
}
}
相关问题
- 1. 使用Firebase跟踪用户的在线/离线状态
- 2. 如何跟踪用户在线状态?
- 3. 使用NowJS/Node.js实时跟踪在线/离线状态?
- 4. 如何设置和跟踪用户的在线状态
- 5. 如何在Django 1.9中显示用户状态(在线,离线)?
- 6. Android信使应用程序:用户在线/离线状态
- 7. 用socket.io向Laravel发送用户的在线/离线状态
- 8. 使用Redis跟踪在线用户
- 9. Twitch流状态显示在线。当用户离线
- 10. 用户jquery确定在线/离线状态
- 11. XMPPFramework:我可以确定用户的在线/离线状态吗?
- 12. 在线和离线状态的用户quickblox
- 13. 如何回拨在线/离线状态?
- 14. django跟踪最近的在线用户
- 15. 跟踪Golang的在线用户
- 16. 如何在服务器崩溃时跟踪用户的“在线”状态?
- 17. 在JFlex中跟踪状态
- 18. ADB状态离线
- 19. 在离子应用程序中监控在线和离线状态
- 20. OpenFire PHP中的在线/离线用户
- 21. MVC4在线跟踪时间
- 22. 曲线跟踪
- 23. Google Analytics(分析)离线跟踪
- 24. Web用户活动跟踪[独立离线库]
- 25. 如何在Rails中跟踪在线用户?
- 26. 如何检测Android中的离线/在线状态的设备状态
- 27. 离线Twilio设备状态
- 28. 用于在线/离线状态的Skype/MSN/Yahoo图标
- 29. Sails.js。如何计算在线用户?
- 30. grails中的在线 - 离线状态实现
感谢您的答复。这答案非常有趣和有用.Thanks了很多。我现在试过了。正如你所说,即使IAM没有注销,套接字也会断开连接。所以,当一个人离线时,即当一个人注销时,我也需要跟踪。 – Mahahari