Fiori 中的会话超时:SAP UI5 或网关层是否提供在用户会话超时时调用的事件

Session Timeout in Fiori: Does SAP UI5 or the Gateway layer provide an event which gets called when the user's session times out

我正在研究 SAP Fiori 中的资源锁定。更详细地说,我试图在用户登录并打开我的应用程序后锁定资源,并在他注销或注销后解锁资源。

我知道 onExit() 事件处理程序位于 main.controller.js 中,如果用户执行将他注销的操作,则会调用该事件处理程序。这会处理除一个以外的所有场景:当用户的会话超时时。

有人知道一旦会话超时 就会调用的方法(UI5/网关层)吗?

据我所知,这是如何处理的,如果用户的会话超时,那么在用户刷新屏幕之前什么也不会发生。 此时调用 Odata 来获取数据。一旦它到达网关,它就会检查并发现会话已超时并触发重新登录操作。

如果我错了请纠正我。如果正确的话,有人知道执行此操作的事件处理程序是什么吗?

此外,我已经阅读了很多相关内容。这属于 乐观和悲观并发 。我想尝试悲观而不是乐观

使用 etag 的方法。

提前感谢您的宝贵时间

此外,我不能正式 post 任何代码,因为这会违反政策,但如果您有任何疑问,请随时提出,我会尽力 :)。另外,这更像是一个事实调查任务。

您无法相信从浏览器执行的请求会发出超时信号。您最终会锁定资源,而这些资源不应由于连接丢失、应用程序崩溃、电池耗尽等原因而被锁定。 Web应用程序的经典问题!

相反,您可以构造一个锁刷新机制。在后台每 30 秒左右刷新一次锁。如果锁被释放,请确保获取最新版本的资源!