首页 > 解决方案 > 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 触发器有关?或者,侦听器/进程可能在接收一些新数据但进入后台模式时失败?间歇性故障使这个问题变得棘手。

想知道你是否遇到过类似的问题。非常感谢任何照明。

标签: laravelionic-frameworkmobilepusher

解决方案


推荐阅读