laravel - Pusher/Laravel Echo 间歇性地停止在 Ionic 3.9.2 上工作
问题描述
通常它可以工作。
当我在 Laravel 网络应用程序上创建约会时,Ionic 移动应用程序的列表视图会随着新约会(通过 Laravel Echo 和 Pusher)实时更新。
...
@Injectable()
export class UpdateService {
private echoStarted: boolean;
private channel: string = null;
private dataChanged = new Subject<void>();
public dataChanged$ = this.dataChanged.asObservable();
constructor(private auth: AuthService) {
window.Pusher = require("pusher-js");
if (this.auth.isLoggedIn()) {
this.startEcho();
}
this.auth.authenticated$.subscribe(status => {
if (status) {
if (!this.echoStarted) {
this.startEcho();
}
} else {
this.stopEcho();
}
});
}
...
但在某些时候,实时监听器完全停止并继续无法工作,直到我硬刷新移动页面或重置移动应用程序。换句话说,当我创建一个新约会时,移动应用程序列表视图只是坐在那里,没有自动更新。
当切换到另一个移动应用程序然后返回时,或者将移动应用程序置于后台模式(按下手机电源按钮然后返回)时,似乎会重现此问题。发生在 Android 和 iOS 上。
webapp前端Pusher实现的实时更新不会出现这个问题。
所以我怀疑这是一个移动应用程序代码问题,希望不是 Ionic 和 Pusher 的基本稳定性问题。
也许与实时侦听器/进程加倍并失败的 OnResume 触发器有关?或者,侦听器/进程可能在接收一些新数据但进入后台模式时失败?间歇性故障使这个问题变得棘手。
想知道你是否遇到过类似的问题。非常感谢任何照明。
解决方案
推荐阅读
- c# - Mondodb C#用数组值保存字典
- internet-explorer - MS Edge 是否继续 IE 版本?
- mysql - TypeError:无法读取未定义 REACTjs 问题的属性“地图”
- python - 有没有办法让 @property "getter/setter" 在 python 中不那么重?
- html - 两个固定侧边栏
- html - 在使用 Google 地方信息自动填充时阻止 Chrome 使用 HTML 建议地址
- vue.js - 如何检查 vue 路由器系统的健康状况?,可能缺少某些东西
- r - 将 ifelse 语句与 R 中的 shift data.table 函数相结合
- macos - zsh 终端在 mac 上无法正常工作
- javascript - 将多页应用程序转换为单页