java后台程序怎么判断前端web页面是否在运行还是关闭?

fangsky 2019-10-30 10:18:10
有个客户端程序大概是这样的:
web前端页面登录--(登录请求)---》后台--(发送登录信息,登录成功后持续发送心跳)----》服务端

前端登录成功后,后台程序就每隔30秒发送心跳包来维持长连接。然后获取服务端返回的数据给前端。

现在遇到这种情况:
就是关闭前端web页面后,这种情况下,就不需要后台发送心跳与服务端进行连接了,但是目前后台还是在发送心跳。

如何做到前端web页面关闭后,后台跟服务器的连接也关闭。 然后等前端重新打开浏览器再次登录时,后台在处理与服务器的连接。


简单就是说:
1、浏览器页面一直打开着,后台就与服务端保持长连接。
2、如果浏览器页面关闭,后台就关闭与服务端的连接。
3、等浏览器页面重新打开,就是重新进行登录连接....
...全文
1312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2019-10-31
  • 打赏
  • 举报
回复
可以考虑下页面加心跳机制,没心跳了就是被关掉了呗
SZ深呼吸 2019-10-31
  • 打赏
  • 举报
回复
也许是我看错了,web->后台->服务器,这里的后台不是服务端。 你的web和后台之间可以用websocket通信
SZ深呼吸 2019-10-31
  • 打赏
  • 举报
回复
引用 4 楼 人生呐 的回复:
上面的老哥说话好不客气啊,前辈前端页面开启关闭都可以有时间触发,不可以在页面打开或者关闭的时候给后台发送一个接口么?
你没仔细看楼主说的问题,有心跳、长连接的不是用了websocket么?既然用了websocket,服务端就可以监听到客户端的关闭事件了。
maradona1984 2019-10-31
  • 打赏
  • 举报
回复
引用 4 楼 人生呐 的回复:
上面的老哥说话好不客气啊,前辈前端页面开启关闭都可以有时间触发,不可以在页面打开或者关闭的时候给后台发送一个接口么?
打开好说,关闭不好说,毕竟关闭谁也不能保证能发送一个接口,因为关闭有很多种,但只有一种能触发事件
情谊梦幻 2019-10-30
  • 打赏
  • 举报
回复
这就可能会牵扯到浏览器cookie了吧!页面关闭,cookie不一定就在不在了,而是有一定的时间,只有用户正常退出才能做
  • 打赏
  • 举报
回复
上面的老哥说话好不客气啊,前辈前端页面开启关闭都可以有时间触发,不可以在页面打开或者关闭的时候给后台发送一个接口么?
SZ深呼吸 2019-10-30
  • 打赏
  • 举报
回复
websocket,页面关闭,服务端能监听到关闭事件的
BigBug博客 2019-10-30
  • 打赏
  • 举报
回复
使用socket啊,页面关闭socket就自动断开了,并且服务器可以收到socket断开通知,重新打开页面的时候再连接socket,服务器同样会有通知的。至于如何辨别socket是哪个用户,你在socket连接和断开中添加标识参数就好了。 如果不清楚socket使用的话,先去学习下socke再来。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧