【问题标题】:Api Call when user is closing the broswer用户关闭浏览器时的 API 调用
【发布时间】:2023-03-05 09:38:01
【问题描述】:

我使用 jitsi-meet 在我的网站(angular+spring)上创建了一个视频通话功能。我在数据库中维护了三个呼叫状态以进行跟踪,即 not_initiated、initiated、call_end。工作流程如下:

  1. 用户 A 加入通话。此时通话状态为 not_initiated。
  2. 用户 B 加入通话,现在通话状态变为已启动并启动计时器。
  3. 当任何用户挂断呼叫时,会向后端服务器触发回调 API,该 API 将呼叫状态更改为 call_end 并根据时间从用户钱包中扣除金额

我面临的问题是我需要向两个用户显示一个计时器,并且它需要与两个用户浏览器同步。 第二个问题是,如果用户关闭浏览器,那么服务器永远不会收到回调请求,在这种情况下,我永远无法更改对 call_end 的调用状态。如何确保收到来自浏览器的回调?

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: angular spring-boot


【解决方案1】:

目前,jitsi meet 中的定时器已经和同一个房间的其他用户同步了?在这里,您只需要在“已启动”状态下从独立于浏览器的后端启动/控制计时器。

其次,当您关闭浏览器选项卡时,您的连接就消失了,但这并不意味着您已经结束了它。如果您想立即为每次连接丢失添加一个类似“call_end”的逻辑,那么它会妨碍会议性能,因为网络对所有用户都不稳定,它需要重试以重新连接。您可以设置几秒钟的超时时间,之后如果 1 个用户失去连接是 2 人通话,您将强制结束后端的通话。

此外,为了获得更多经验丰富的友好用户的关注和回答,请在jitsi community 发帖。谢谢..!

【讨论】:

    猜你喜欢
    • 2022-09-30
    • 2020-10-23
    • 2018-10-26
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2012-11-05
    相关资源
    最近更新 更多