我正在尝试与express.js&socket.io聊天。当前,我的聊天用户可以在同一浏览器上打开多个标签,并可以在所有这些标签上聊天。这意味着同一客户可以同时与几个人聊天。我想防止这种行为。
我想防止客户端每次在以下情况下都连接到聊天:
1)客户端在同一浏览器上的不同选项卡上工作
2)客户端打开了不同的浏览器并对其进行处理
我该怎么做?谢谢!
您可以使用Cookie识别特定的浏览器,从而从同一浏览器的不同选项卡中检测到同一用户。在首次连接(socket.io或快速请求)时,您设置一个唯一的cookie标识符,然后在后续连接中,检查该唯一的cookie标识符是否已被使用。您将必须在特定的应用程序中定义“使用中”的含义。对于socket.io连接,这要容易一些,因为这意味着当前已经有一个活动的连接。对于Express请求,这要困难一些,因为请求是临时的,因此您必须决定如何分辨不同选项卡之间的区别,而不是仅一个选项卡导航到新页面(即特定于应用程序的操作方式)。
为了检测多个浏览器,您将必须具有用户身份验证,并假设用户没有创建多个帐户,或者具有某种系统来阻止同一用户创建多个帐户。然后,您可以像上一个示例一样在cookie中使用帐户身份验证凭据,以告知是否已在使用该用户的会话。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句