如何解决关闭会话后立即触发 destroyListener
我正在研究会话管理面板。我想通过单击按钮来终止另一个用户的会话。我使用 VaadinSession 对象创建了网格,并使用 VaadinSession.close() 功能创建了按钮,但在 close() 销毁会话侦听器后不会立即触发,他的网站也不会重新加载。它在一段时间后被触发,但是当用户关闭会话点击他网站上的任何东西时,destroyListener 会更快地触发。 是否有任何选项可以在关闭会话后立即触发 DestroyListener?
解决方法
3.8.0
只是 sets a flag 表示会话将被关闭。在处理来自该会话的请求时执行实际清理。这就是为什么单击按钮会触发 SessionDestroyListener(或者,心跳也会产生相同的效果)。
使用 Vaadin 14+,您可以强制关闭会话中的每个 UI 执行无操作,以便进行服务器-客户端往返。
VaadinSession.close()
那个时候:
a) 服务器将意识到当前会话已关闭,然后会话将被销毁(并替换为新会话)
b) 客户端将为新会话重新加载每个浏览器选项卡。
session.getUIs().stream().forEach(ui->ui.getElement().executeJs("return"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。