java 如何处理一个账号 只能2个终端来登陆,第三个人再用这个登陆,就提示无法登陆了,同时要想到

2025-02-25 04:42:20
推荐回答(3个)
回答1:

像这种场景,需要服务器端和客户端的同时支持。客户端需要向服务器端发送该端的标示符。可以用随机id写永久cookie的形式(只是个例子,可参考),并将该id保存到session中,服务器端除了判断同一个用户的session个数外,同时检查客户端id,如果id相同,可注销已存在的session(原来登录的,然后断电造成的那个),这样基本能解决该问题。或者如果客户群体有固定ip的话,使用ip记录也能达到一定效果。

回答2:

判断session个数,,超过两个了就不让在登陆了,。做一个全局变量,。记录session

回答3:

其实是个很简单的线程池的问题,做个容量为2的线程池,新的连接申请不到线程也就自然登不上来。
至于断电控制,其实只要设一个超时自动断线,在一个连接长时间无报文的话,将其中断也就是了。

自己做会稍微有点烦,你可以使用一些开源软件,例如mina,netty都有直接的处理方法。