我正在尝试创建一个聊天网站。因为用户也有离线或在线状态。。如果用户登录,则将用户设置为在线;如果用户注销或关闭选项卡或关闭网站,则将用户设置为离线。。目前我正在使用beforeunload事件。当我的后端在localhost上时,它工作得很好,但当我将后端转移到主机上时,用户状态并没有从脱机变为联机。。
// on app.component.ts file..
@HostListener('window:beforeunload') changeStatus() {
this.http.get('some url to make the users status offline').subscribe()
}
这一个不能将后端转移到主机mechine上。。我想这是因为这是一个异步调用,浏览器在完成之前终止了该线程。。所以这个异步调用不是finsihing。。我试着用
navigator.sendBeacon()
但主要的问题是我找不到任何解决方案来通过
navigator.sendBeacon()
方法,我的http调用实际上依赖于该承载令牌。。那么,在用户关闭选项卡之前,如何发送一些http请求,以便在数据库中用户的状态更改为脱机?我用的是角度。。。