我正在开发一个使用socket.io将用户保持在一起的应用程序。使用该应用程序时,我会跟踪用户所采取的操作。如果用户意外断开连接(在我的用例中,他们的电话响了,或者屏幕关闭了),我希望他们能够以同一“用户”的身份重新进入会议室而无需登录,因此他们可以执行操作跟踪与他们在一起。我尝试使用socket.conn.remoteAddress
,但这似乎不够一致,无法依靠。
现在,我要求用户手动输入用户名并与服务器上具有该名称的用户匹配,但我希望它是自动的并且对用户不可见,更不用说比每个用户输入的用户名更可靠了。 。
使用Cookie。当他们连接时,检查其唯一cookie是否已存在。如果没有,请在其中创建一个具有唯一ID的文件。如果它已经存在,请使用其中的唯一ID来标识用户。
通过socket.io中的connect事件,您可以在此处获取cookie。
const socketCookieName = "socketUser";
const cookieParser = require('socket.io-cookie-parser');
io.use(cookieParser());
io.on('connection', function(socket) {
// all parsed cookies in socket.request.cookies
let user = socket.request.cookies[socketCookieName];
if (!user) {
// create unique userID and set it in a cookie
user = /* create some unique userID here */;
// set this into a cookie
}
// now user will be your socket.io userID
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句